22+ 高频实用的 JavaScript 片段 (2020年)

开发 前端
废话不多话,在本文中,列出了一些比较常用或者实用的的 JavaScript 代码片段,希望对你们有所帮助。

 [[339940]]

废话不多话,在本文中,列出了一些比较常用或者实用的的 JavaScript 代码片段,希望对你们有所帮助。

1.三元运算符

let someThingTrue = true 
if(someThingTrue){ 
    handleTrue() 
}else
    handleFalse() 

 
****** 以下是简短版本 ****** 
 
let someThingTrue = true 
someThingTrue ?  handleTrue() : handleFalse() 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

2.短路或运算

const defaultValue = "SomeDefaultValue" 
let someValueNotSureOfItsExistance = null 
let expectingSomeValue = someValueNotSureOfItsExistance ||     defaultValue 
 
console.log(expectingSomeValue) // SomeDefaultValue 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

3. 条件成立

let someValue = true 
if (someValue) { 
  console.log('条件成立!'

  • 1.
  • 2.
  • 3.
  • 4.

4. for 循环

for (let i = 0; i < 1e2; i++) { // 代替 i<100 是不是有点酷 

let someValues = [1, 2, 4] 
for (let val in someValues) { 
  console.log(val) 

let obj = { 
  'key1''value1'
  'key2''value2'
  'key3''value3' 

for (let key in obj) { 
  console.log(key

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.

5. 值到对象的映射

let x='x',y='y' 
let obj = {x,y} 
 
console.log(obj) // {x: "x", y: "y"
  • 1.
  • 2.
  • 3.
  • 4.

6. Object.entries()

const credits = { 
  producer: '大迁世界'
  name'前端小智'
  rating: 9 

const arr = Object.entries(credits) 
console.log(arr) 
 
*** 输出 *** 
[ [ 'producer''大迁世界' ], [ 'name''前端小智' ], [ 'rating', 9 ] ] 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

7. Object.values()

const credits = { 
  producer: '大迁世界'
  name'前端小智'
  rating: 9 

const arr = Object.values(credits) 
console.log(arr) 
 
*** 输出 *** 
 
'大迁世界''前端小智', 9 ] 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

8. 模板字面量

let name = '前端小智' 
let age = 20 
var someStringConcatenateSomeVariable = `我是 ${name},今年 ${age} 岁` 
console.log(someStringConcatenateSomeVariable) 
  • 1.
  • 2.
  • 3.
  • 4.

9. 解构赋值

import { observable, action, runInAction } from 'mobx'
  • 1.

10.多行字符串

let multiLineString = `some string\n 
with multi-line of\n 
characters\n` 
 
console.log(multiLineString) 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

11.Array.find 简写

const pets = [{ 
    type: 'Dog'
    name'Max' 
  }, 
  { 
    type: 'Cat'
    name'Karl' 
  }, 
  { 
    type: 'Dog'
    name'Tommy' 
  } 

pet = pets.find(pet => pet.type === 'Dog' && pet.name === 'Tommy'
 
console.log(pet) // { type: 'Dog'name'Tommy' } 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

12.默认参数值

早期的做法

function area(h, w) { 
  if (!h) { 
    h = 1; 
  } 
  if (!w) { 
    w = 1; 
  } 
  return h * w 

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

ES6 以后的做法

function area(h = 1, w = 1) { 
  return h * w 

  • 1.
  • 2.
  • 3.

13.箭头函数的简写

let sayHello = (name) => { 
  return `你好,${name}` 

 
console.log(sayHello('前端小智')) 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

简写如下:

let sayHello = name => `你好,${name}` 
 
console.log(sayHello('前端小智')) 
  • 1.
  • 2.
  • 3.

14.隐式返回

let someFuncThatReturnSomeValue = (value) => { 
  return value + value 

console.log( 
someFuncThatReturnSomeValue('前端小智')) 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

简写如下:

let someFuncThatReturnSomeValue = (value) => ( 
  value + value 

console.log(someFuncThatReturnSomeValue('前端小智')) 
  • 1.
  • 2.
  • 3.
  • 4.

15.函数必须有参数值

function mustHavePatamMethod(param) { 
  if (param === undefined) { 
    throw new Error('Hey You must Put some param!'); 
  } 
  return param; 

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

以像这样重写:

mustHaveCheck = () => { 
  throw new Error('Missing parameter!'

methodShoudHaveParam = (param = mustHaveCheck()) => { 
  return param 

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

16.charAt() 简写

'SampleString'.charAt(0) // S 
// 简写 
'SampleString'[0] 
  • 1.
  • 2.
  • 3.

17.有条件的函数调用

function fn1() { 
  console.log('I am Function 1'

 
function fn2() { 
  console.log('I am Function 2'

/* 
长的写法 
*/ 
let checkValue = 3; 
if (checkValue === 3) { 
  fn1() 
else { 
  fn2() 

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

简短的写法:

(checkValue === 3 ? fn1 : fn2)() 
  • 1.

17.Math.Floor 简写

let val = '123.95' 
 
console.log(Math.floor(val)) // 常规写法 
console.log(~~val) // 简写 
  • 1.
  • 2.
  • 3.
  • 4.

18.Math.pow  简写

Math.pow(2, 3) // 8 
// 简写 
2 ** 3 // 8 
  • 1.
  • 2.
  • 3.

19.将字符串转换为数字

const num1 = parseInt('100'
// 简写 
console.log(+"100"
console.log(+"100.2"
  • 1.
  • 2.
  • 3.
  • 4.

20.&& 运算

let value = 1; 
if (value === 1) 
  console.log('Value is one'
//OR In short  
value && console.log('Value is one'
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

21.toString 简写

let someNumber = 123 
console.log(someNumber.toString()) // "123" 
// 简写 
console.log(`${someNumber}`) // "123" 
  • 1.
  • 2.
  • 3.
  • 4.

22.可选的链运算符(即将发布)

现在有一个关于ECMAScript的新提议,值得了解。

let someUser = { 
  name'Jack' 

let zip = someUser?.address?.zip //可选链接,像 Swift  
  • 1.
  • 2.
  • 3.
  • 4.

如果 zip是undefined ,则不会引发错误。

该语法还支持函数和构造函数调用

let address = getAddressByZip.?(12345) 
  • 1.

如果getAddressByZip是调用它的函数,否则,表达式将以undefined的形式计算。

23. 使用对象的方式来替换 switch 语法

let fruit = 'banana'
let drink; 
switch (fruit) { 
  case 'banana'
    drink = 'banana juice'
    break; 
  case 'papaya'
    drink = 'papaya juice'
    break; 
  default
    drink = 'Unknown juice!' 

console.log(drink) // banana juice 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

作者:xor 译者:前端小智 来源:medium

原文:https://medium.com/javascript-in-plain-english/some-js-shortcuts-82bc2f56146e

本文转载自微信公众号「 大迁世界」,可以通过以下二维码关注。转载本文请联系 大迁世界公众号。

 

责任编辑:武晓燕 来源: 大迁世界
相关推荐

2023-06-16 16:34:25

JavaScripWeb 开发

2023-11-03 16:02:00

JavaScript开发

2024-01-04 16:46:58

JavaScript开发

2021-09-17 15:31:47

代码JavaScript数组

2022-06-08 08:55:15

JavaScript代码前端

2015-11-02 09:25:07

jQuery代码片段

2011-07-07 10:35:53

htaccess

2015-10-08 08:53:46

PHP代码片段

2011-07-14 10:07:19

PHP

2024-04-09 00:00:00

Java代码片段

2020-11-16 16:04:42

CSS设计代码

2021-01-18 15:46:10

JavaScript开发 编程

2020-08-02 23:48:57

JavaScript用户认证库开发

2020-08-12 08:31:57

JavaScript

2021-10-31 07:36:17

前端JavaScript编程

2019-07-22 05:01:38

物联网IOT技术

2023-05-22 15:53:06

JavaScrip代码素材

2011-07-11 10:16:07

JavaScript

2020-12-16 10:11:50

开发技能工具

2023-10-10 16:16:05

JavaScrip开发
点赞
收藏

51CTO技术栈公众号