15个JavaScript速记技巧 (下)

59 阅读1分钟

本文涵盖了每个开发人员都应该知道的 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' }