JavaScript 是属于网络的脚本语言!被数百万计的网页用来改进设计、验证表单、检测浏览器、创建cookies,以及更多的应用。同时很容易使用,所以越来越多的开发者选择js代码来实现自己想要的效果,但开发过程中,为了更高的效率和良好的代码规范要求,我们不得不知晓js一些常用的简写技巧,如下我帮大家整理了下,一起进来看看吧~
1. 三元运算符
当你想用一行代码来写if...else语句的时候,使用三元操作符是非常好的选择,例如:
const x = 20; let answer; if (x > 10) { answer = 'is greater'; } else { answer = 'is lesser'; }
可以简写为:
const answer = x > 10 ? 'is greater' : 'is lesser';
也可以嵌套if语句:
const big = x > 10 ? " greater 10" : x
2. 简写短路求值
当给一个变量分配另一个值的时候,你可能想确定初值不是null,undefined或空值。这时,你可以写一个多重条件的if语句:
if (variable1 !== null || variable1 !== undefined || variable1 !== '') { let variable2 = variable1; }
或者可以使用短路求值的方法:
const variable2 = variable1 || 'new';
3. 简写变量声明
在定义函数的时候,你可能需要先声明多个变量,例如:
let x; let y; let z = 3;
这时,你可以使用简写的方式节省很多时间和空间,即同时声明多个变量:
let x, y, z=3;
4. 简写 if 执行条件
这可能微不足道,但值得一提。在你做if条件检查的时候,其赋值操作可以省略,例如:
if (likeJavaScript === true)
可以简写为:
if (likeJavaScript)
只有当likeJavaScript是真值的时候,以上两个语句才可以替换。如果判断假值,例如:
let a; if ( a !== true ) { // do something... }
可以简写为:
let a; if ( !a ) { // do something... }
5. 简写 JavaScript 循环方法
当你想使用纯 javascript 而不依赖外库(例如jQuery)的时候,这是非常有用的。
for (let i = 0; i < allImgs.length; i++)
可以简写为:
for (let index in allImgs)
也可以使用Array.forEach:
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来分配默认值的话,我们不需要写六行代码,而是可以使用一个短路逻辑运算符,只用一行代码来完成相同的操作。例如:
let dbHost; if (process.env.DB_HOST) { dbHost = process.env.DB_HOST; } else { dbHost = 'localhost'; }
可以简写为:
const dbHost = process.env.DB_HOST || 'localhost';
7. 十进制指数
当数字的尾部为很多的零时(如10000000),咱们可以使用指数(1e7)来代替这个数字,例如:
for (let i = 0; i < 10000; i++) {}
可以简写为:
for (let i = 0; i < 1e7; i++) {}
// 下面都是返回 true 1e0 === 1; 1e1 === 10; 1e2 === 100; 1e3 === 1000; 1e4 === 10000; 1e5 === 100000;
8. 简写对象属性
在 JavaScript 中定义对象很简单,而且ES6提供了一个更简单的分配对象属性的方法。如果属性名与key值相同,例如:
const obj = { x:x, y:y };
则可以简写为:
const obj = { x, y };
9. 简写箭头函数
传统函数很容易让人理解和编写,但是当它嵌套在另一个函数中的时候,它就会变得冗长和混乱。例如:
function sayHello(name) { console.log('Hello', name); }
setTimeout(function() { console.log('Loaded') }, 2000);
list.forEach(function(item) { console.log(item); });
这时,可以简写为:
sayHello = name => console.log('Hello', name);
setTimeout(() => console.log('Loaded'), 2000);
list.forEach(item => console.log(item));
10. 简写隐式返回值
我们经常使用return语句来返回函数最终结果,仅有一行声明语句的箭头函数能隐式返回其值(这时函数必须省略{}以便省略return关键字)。如果想要返回多行语句,则需要使用()包围函数体。例如:
function calcCircumference(diameter) { return Math.PI * diameter } var func = function func() { return { foo: 1 }; };
可以简写为:
calcCircumference = diameter => ( Math.PI * diameter; ) var func = () => ({ foo: 1 });
11. 默认参数值
我们经常可以使用if语句来为函数中的参数定义默认值。但是在ES6中,咱们可以在函数本身声明参数的默认值。例如:
function volume(l, w, h) { if (w === undefined) w = 3; if (h === undefined) h = 4; return l * w * h; }
可以简写为:
volume = (l, w = 3, h = 4 ) => (l * w * h);
volume(2) // output: 24
12. 字符串模板