7个你必须知道的 JavaScript 简写技巧
大约 3 分钟约 764 字...
本文将介绍大量的 JavaScript 速记优化技巧,这些技巧可以帮助大家编写更好的代码。
1. 多个字符串检查
通常,如果我们需要检查字符串是否等于多个值中的一个,往往很快会觉得疲惫不堪。幸运的是,JavaScript 有一个内置的方法来帮助你解决这个问题。
// 普通写法
const isVowel = (letter) => {
if (
letter === "a" ||
letter === "e" ||
letter === "i" ||
letter === "o" ||
letter === "u"
) {
return true;
}
return false;
};
// 简写方法
const isVowel = (letter) => ["a", "e", "i", "o", "u"].includes(letter);
2. For-of 和 For-in 循环
For-of
和For-in
循环是迭代array
或object
的好方法,因为无需手动跟踪object
键的索引。
For-of
const arr = [1, 2, 3, 4, 5];
// 普通写法
for (let i = 0; i < arr.length; i++) {
const element = arr[i];
// ...
}
// 简写方法
for (const element of arr) {
// ...
}
For-in
const obj = {
a: 1,
b: 2,
c: 3,
};
// 普通写法
const keys = Object.keys(obj);
for (let i = 0; i < keys.length; i++) {
const key = keys[i];
const value = obj[key];
// ...
}
// 简写方法
for (const key in obj) {
const value = obj[key];
// ...
}
3. Falsey(假值)检查
如果要检查变量是null
、undefined
、0
、false
、NaN
还是空string
,可以使用逻辑非 (!
)运算符一次检查所有变量,而无需编写多个条件。这使得检查变量是否包含有效数据变得相对容易多了。
// 普通写法
const isFalsey = (value) => {
if (
value === null ||
value === undefined ||
value === 0 ||
value === false ||
value === NaN ||
value === ""
) {
return true;
}
return false;
};
// 简写方法
const isFalsey = (value) => !value;
4. 三元运算符
作为 JavaScript 开发人员,你一定遇到过三元运算符。这是编写简洁if-else
语句的好方法。但是,也可用来编写简洁的代码,甚至将它们链接起来来检查多个条件。
// 普通写法
let info;
if (value < minValue) {
info = "Value is too small";
} else if (value > maxValue) {
info = "Value is too large";
} else {
info = "Value is in range";
}
// 简写方法
const info =
value < minValue
? "Value is too small"
: value > maxValue
? "Value is too large"
: "Value is in range";
5. 函数调用
在三元运算符的帮助下,你还可以根据条件确定要调用哪个函数。
注:函数的
call signature
必须相同,否则可能会遇到错误。
function f1() {
// ...
}
function f2() {
// ...
}
// 普通写法
if (condition) {
f1();
} else {
f2();
}
// 简写方法
(condition ? f1 : f2)();
6. Switch 简写
通常我们可以使用以键作为switch
条件并将值作为返回值的对象来优化长switch
语句。
const dayNumber = new Date().getDay();
// 普通写法
let day;
switch (dayNumber) {
case 0:
day = "Sunday";
break;
case 1:
day = "Monday";
break;
case 2:
day = "Tuesday";
break;
case 3:
day = "Wednesday";
break;
case 4:
day = "Thursday";
break;
case 5:
day = "Friday";
break;
case 6:
day = "Saturday";
}
// 简写方法
const days = {
0: "Sunday",
1: "Monday",
2: "Tuesday",
3: "Wednesday",
4: "Thursday",
5: "Friday",
6: "Saturday",
};
const day = days[dayNumber];
7. 回退值
||
运算符可以为变量设置回退值。
// 普通写法
let name;
if (user?.name) {
name = user.name;
} else {
name = "Anonymous";
}
// 简写方法
const name = user?.name || "Anonymous";
本文完,感谢阅读!
Powered by Waline v2.15.5