分享19个JavaScript 有用的简写写法
网络 2017-07-10 1462
1.三元操作符
当想写if...else语句时,使用三元操作符来代替。
普通写法:
1 2 3 4 5 6 7 | const x = 20; let answer; if (x > 10) { answer = 'is greater'; } else { answer = 'is lesser'; } |
简写:
1 | const answer = x > 10 ? 'is greater' : 'is lesser'; |
也可以嵌套if语句:
1 | const big = x > 10 ? " greater 10" : x |
2.短路求值简写方式
当给一个变量分配另一个值时,想确定源始值不是null,undefined或空值。可以写撰写一个多重条件的if语句。
1 2 3 | if (variable1 !== null || variable1 !== undefined || variable1 !== '') { let variable2 = variable1; } |
或者可以使用短路求值方法:
1 | const variable2 = variable1 || 'new'; |
3.声明变量简写方法
1 2 3 | let x; let y; let z = 3; |
简写方法:
1 | let x, y, z=3; |
4.if存在条件简写方法
1 | if (likeJavaScript === true) |
简写:
1 | if (likeJavaScript) |
只有likeJavaScript是真值时,二者语句才相等
如果判断值不是真值,则可以这样:
1 2 3 4 | let a; if ( a !== true ) { // do something... } |
简写:
1 2 3 4 | let a; if ( !a ) { // do something... } |
5.JavaScript循环简写方法
1 | for (let i = 0; i < allImgs.length; i++) |
简写:
1 | for (let index in allImgs) |
也可以使用Array.forEach:
1 2 3 4 5 6 7 8 | function logArrayElements(element, index, array) { console.log("a[" + index + "] = " + element); } [2, 5, 9].forEach(logArrayElements); // logs: // a[0] = 2 // a[1] = 5 // a[2] = 9 |
6.短路评价
给一个变量分配的值是通过判断其值是否为null或undefined,则可以:
1 2 3 4 5 6 | let dbHost; if (process.env.DB_HOST) { dbHost = process.env.DB_HOST; } else { dbHost = 'localhost'; } |
简写:
1 | const dbHost = process.env.DB_HOST || 'localhost'; |
7.十进制指数
当需要写数字带有很多零时(如10000000),可以采用指数(1e7)来代替这个数字:
1 | for (let i = 0; i < 10000000; i++) {} |
简写:
1 2 3 4 5 6 7 8 9 | for (let i = 0; i < 1e7; i++) {} // 下面都是返回true 1e0 === 1; 1e1 === 10; 1e2 === 100; 1e3 === 1000; 1e4 === 10000; 1e5 === 100000; |
8.对象属性简写
如果属性名与key名相同,则可以采用ES6的方法:
1 | const obj = { x:x, y:y }; |
简写:
1 | const obj = { x, y }; |
9.箭头函数简写
传统函数编写方法很容易让人理解和编写,但是当嵌套在另一个函数中,则这些优势就荡然无存。
1 2 3 4 5 6 7 8 9 10 11 | function sayHello(name) { console.log('Hello', name); } setTimeout(function() { console.log('Loaded') }, 2000); list.forEach(function(item) { console.log(item); }); |
简写:
1 2 3 | sayHello = name => console.log('Hello', name); setTimeout(() => console.log('Loaded'), 2000); list.forEach(item => console.log(item)); |
10.隐式返回值简写
经常使用return语句来返回函数最终结果,一个单独语句的箭头函数能隐式返回其值(函数必须省略{}为了省略return关键字)
为返回多行语句(例如对象字面表达式),则需要使用()包围函数体。
1 2 3 4 5 6 7 | function calcCircumference(diameter) { return Math.PI * diameter } var func = function func() { return { foo: 1 }; }; |
简写:
1 2 3 4 5 | calcCircumference = diameter => ( Math.PI * diameter; ) var func = () => ({ foo: 1 }); |
11.默认参数值
为了给函数中参数传递默认值,通常使用if语句来编写,但是使用ES6定义默认值,则会很简洁:
1 2 3 4 5 6 7 |