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

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

 [[339940]]

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

1.三元运算符

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

2.短路或运算

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

3. 条件成立

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

4. for 循环

  1. for (let i = 0; i < 1e2; i++) { // 代替 i<100 是不是有点酷 
  2. let someValues = [1, 2, 4] 
  3. for (let val in someValues) { 
  4.   console.log(val) 
  5. let obj = { 
  6.   'key1''value1'
  7.   'key2''value2'
  8.   'key3''value3' 
  9. for (let key in obj) { 
  10.   console.log(key

5. 值到对象的映射

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

6. Object.entries()

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

7. Object.values()

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

8. 模板字面量

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

9. 解构赋值

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

10.多行字符串

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

11.Array.find 简写

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

12.默认参数值

早期的做法

  1. function area(h, w) { 
  2.   if (!h) { 
  3.     h = 1; 
  4.   } 
  5.   if (!w) { 
  6.     w = 1; 
  7.   } 
  8.   return h * w 

ES6 以后的做法

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

13.箭头函数的简写

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

简写如下:

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

14.隐式返回

  1. let someFuncThatReturnSomeValue = (value) => { 
  2.   return value + value 
  3. console.log( 
  4. someFuncThatReturnSomeValue('前端小智')) 

简写如下:

  1. let someFuncThatReturnSomeValue = (value) => ( 
  2.   value + value 
  3. console.log(someFuncThatReturnSomeValue('前端小智')) 

15.函数必须有参数值

  1. function mustHavePatamMethod(param) { 
  2.   if (param === undefined) { 
  3.     throw new Error('Hey You must Put some param!'); 
  4.   } 
  5.   return param; 

以像这样重写:

  1. mustHaveCheck = () => { 
  2.   throw new Error('Missing parameter!'
  3. methodShoudHaveParam = (param = mustHaveCheck()) => { 
  4.   return param 

16.charAt() 简写

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

17.有条件的函数调用

  1. function fn1() { 
  2.   console.log('I am Function 1'
  3.  
  4. function fn2() { 
  5.   console.log('I am Function 2'
  6. /* 
  7. 长的写法 
  8. */ 
  9. let checkValue = 3; 
  10. if (checkValue === 3) { 
  11.   fn1() 
  12. else { 
  13.   fn2() 

简短的写法:

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

17.Math.Floor 简写

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

18.Math.pow  简写

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

19.将字符串转换为数字

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

20.&& 运算

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

21.toString 简写

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

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

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

  1. let someUser = { 
  2.   name'Jack' 
  3. let zip = someUser?.address?.zip //可选链接,像 Swift  

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

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

  1. let address = getAddressByZip.?(12345) 

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

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

  1. let fruit = 'banana'
  2. let drink; 
  3. switch (fruit) { 
  4.   case 'banana'
  5.     drink = 'banana juice'
  6.     break; 
  7.   case 'papaya'
  8.     drink = 'papaya juice'
  9.     break; 
  10.   default
  11.     drink = 'Unknown juice!' 
  12. console.log(drink) // banana juice 

作者: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代码片段

2015-10-08 08:53:46

PHP代码片段

2011-07-07 10:35:53

htaccess

2011-07-14 10:07:19

PHP

2024-04-09 00:00:00

Java代码片段

2020-11-16 16:04:42

CSS设计代码

2020-08-12 08:31:57

JavaScript

2021-10-31 07:36:17

前端JavaScript编程

2023-05-22 15:53:06

JavaScrip代码素材

2011-07-11 10:16:07

JavaScript

2020-08-02 23:48:57

JavaScript用户认证库开发

2023-10-09 14:48:06

2019-11-14 15:30:34

JavaScript代码前端

2023-10-10 16:16:05

JavaScrip开发

2021-01-18 15:46:10

JavaScript开发 编程
点赞
收藏

51CTO技术栈公众号