本文涵盖了每个开发人员都应该知道的 15 个 JavaScript 特性,无论是新手还是经验丰富的开发人员,这些功能都会派上用场。接下来让我们来讨论一下这 15 个重要的 JavaScript 特性(以下均属个人观点,请各位轻喷)。
11.函数参数的默认值
在 JavaScript 中,您可以通过不同的方式为函数参数分配默认值。
普通方式:
function greet(name) {
name = name || 'Anonymous';
console.log(`Hello, ${name}!`);
}
在上面的示例中,name
参数的默认值为'Anonymous'
。name
如果调用函数时没有为参数传递值greet
,它将使用默认值。
简单方式:
function greet(name = 'Anonymous') {
console.log(`Hello, ${name}!`);
}
在此示例中,参数的默认值name
是使用语法在函数定义中直接指定的=
。name
如果调用greet
函数时没有为参数传递值,它将使用默认值。
12. 三元运算符
它也被称为条件运算符或三元条件运算符。
JavaScript 中三元运算符的语法是:
condition ? value_if_true : value_if_false;
if-else
我们可以使用 if-else 语句获得与三元运算符相同的结果。
举一个栗子
let x = 10;
let y = 20;
if (x > y) {
maxValue = x;
} else {
maxValue = y;
}
console.log(maxValue); // 输出 20
在下面的示例中,我们将使用 JavaScript 三元运算符:
let x = 10;
let y = 20;
let maxValue = (x > y) ? x : y;
console.log(maxValue); // 输出 20
在此示例中,条件x > y
被评估为false
,因此 的值y
被分配给maxValue
。如果条件为x < y
,则将分配给true
的值给maxValue
。
三元运算符有助于在单行代码中表达条件逻辑,尽管它比 if-else 形式更难阅读和理解。
当条件逻辑变得更加复杂时,使用三元运算符是个好主意。
13.交换两个变量
在 JavaScript 中,要交换两个变量的值,可以使用不同的方法。
这里有些栗子:
普通方式:这里有些栗子:
let x = 1;
let y = 2;
let temp = x;
x = y;
y = temp;
在上面的示例中,我们创建了一个临时变量(temp)来存储 x 的值,然后将 x 的值赋给 y 的值,将 y 的值赋给 temp。
let x = 1;
let y = 2;
[x, y] = [y, x];
在此示例中,使用解构赋值方法交换 x 和 y 的值。您可以使用解构赋值将变量分配给数组或对象的元素。无需临时变量,它可以成为交换值的便捷方式。
14.检查多个条件
有几种不同的方法可以在 JavaScript 中检查多个条件。
这里有几个选项:
a. 使用&&运算符
此运算符允许您检查多个条件是否为真。
举一个栗子
if (x > 0 && y < 10) {
// 执行一些代码
}
如果两个条件(x > 0 和 y < 10)
都为真,这将只执行 if 语句中的代码。
b. 使用 ||
运算符:
此运算符允许您检查多个条件中是否至少有一个为真。
例如:
if (x === 1 || x === 2 || x === 3) {
// 执行一些代码
}
如果 x 等于 1、2 或 3,这将执行 if 语句中的代码。
c.使用switch
语句:
这允许您检查多个条件并根据给定表达式的值执行不同的代码块。例如:
switch (x) {
case 1 :
// 执行一些代码
break ;
case 2 :
// 执行一些代码
break ;
case 3 :
// 执行一些代码
break ;
default :
// 执行一些代码
}
这将执行 case 块内匹配 x 值的代码。如果所有情况都不匹配,则将执行 default 块内的代码。
请务必注意,&&
和||
运算符具有特定的优先顺序,因此你可能需要使用括号以您想要的方式对条件进行分组。
d.Array.prototype.include()
你可以使用 Array.prototype.include() 方法检查 JavaScript 中的多个条件。
例子:
const value = 2;
if ([1, 'one', 2, 'two'].includes(value)) {
console.log('The value is either 1, "one", 2, or "two"');
} else {
console.log('The value is not 1, "one", 2, or "two"');
}
// 输出:值为 1、“one”、2、
该Array.prototype.include()
函数检查值是否存在。如果存在该值,则 if 块内的代码将在上面的示例中运行。如果找不到该值,将执行 else 块中的代码。
15. 删除属性
delete
运算符允许我们从对象中删除多个属性。
以下面为例:
let obj = {
prop1: 'value1',
prop2: 'value2',
prop3: 'value3',
prop4: 'value4'
};
delete obj.prop1;
delete obj.prop3;
console.log(obj);; // 输出 { prop2: 'value2', prop4: 'value4' }
或者,我们还可以使用该Object.assign()
方法创建一个删除了所需属性的新对象。
举一个栗子:
let obj = {
prop1: 'value1',
prop2: 'value2',
prop3: 'value3',
prop4: 'value4'
};
let newObj = Object.assign({}, obj);
delete newObj.prop1;
delete newObj.prop3;
console.log(newObj); // 输出 { prop2: 'value2', prop4: 'value4' }
在现代 JavaScript(ES6 及更高版本)中,您可以使用Object.entries()
和Object.fromEntries()
方法从对象中删除多个属性。
再举一个栗子:
let obj = {
prop1: 'value1',
prop2: 'value2',
prop3: 'value3',
prop4: 'value4'
};
let newObj = Object.fromEntries(
Object.entries(obj).filter(([key]) => key !== 'prop1' && key !== 'prop3'));
console.log(newObj); // 输出 { prop2: 'value2', prop4: 'value4' }