JavaScript - 短路
在 JavaScript 中,短路 是一种功能,它会检查条件,并在知道答案后立即停止。它不会查找表达式的其余部分,从而避免不必要的求值。
&& 运算符的短路
使用 &&(AND) 逻辑运算符进行短路求值意味着,如果第一个表达式的求值结果为假,则整个表达式将为假,其余表达式将不被求值。
代码片段
以下是使用 && 运算符进行短路求值的示例代码片段。
let x = 0 && "hello"; // x 将为 0,因为 0 为假值,造成短路 let y = true && "world"; // y 将为 "world",因为第一个值为真值 let z = "hello" && "world"; // z 将为 "world",因为两个值均为真值 console.log(x); // 0 console.log(y); // world console.log(z); // world
输出
以下是上述代码的输出
0 world world
|| 运算符的短路
使用 ||(或)逻辑运算符进行短路求值意味着,如果第一个表达式求值为真,则整个表达式为真,其余表达式将不求值。
代码片段
下面是使用 || 运算符进行短路的示例代码片段。
let x = 0 || "hello"; // x 将为 "hello",因为 0 为假值 let y = true || "world"; // y 将为真,因为第一个值为真值 let z = "hello" || "world"; // z 将为 "hello",因为第一个值为真值 console.log(x); // hello console.log(y); // true console.log(z); // hello
输出
以下是上述代码的输出
hello true hello
短路赋值
短路赋值也可以用于赋值操作。也就是说,如果您需要根据某个条件赋值,就可以使用短路赋值。
代码片段
以下是赋值操作中使用短路赋值的示例代码片段。
let x = 0; let y = 10; let z = x || y; // z 将为 10,因为 x 为 false console.log(z); // 10
在上面的例子中,由于 x 为假,所以 z 将被赋值为 y。
输出
以下是上述代码的输出
10
函数调用中的短路
短路也可以用于函数调用。也就是说,如果你需要根据某个条件调用一个函数,那么就可以使用短路。
代码片段
以下是函数调用中短路的示例代码片段。
function greet(name) {
return name || "Guest";
}
let x = greet("John"); // x 将会返回 "John",因为 name 为真
let y = greet(""); // y 将会返回 "Guest",因为 name 为假
console.log(x); // John
console.log(y); // Guest
在上面的例子中,如果 name 为真,则返回 name,否则返回 "Guest"。
输出
以下是上述代码的输出
John Guest

