||
(逻辑或)操作符||
操作符用于逻辑“或”运算。它会从左到右依次求值,直到找到第一个真值(truthy)并返回它;如果所有操作数都为假值(falsy),则返回最后一个操作数。
true
的值,例如非空字符串、非零数字、对象等。false
的值,如 false
、0
、""
(空字符串)、null
、undefined
、NaN
。示例:
console.log(0 || "Hello"); // 输出: "Hello" (0 是 falsy)
console.log(false || 42); // 输出: 42 (false 是 falsy)
console.log(null || "World"); // 输出: "World" (null 是 falsy)
console.log("Hi" || "World"); // 输出: "Hi" ("Hi" 是 truthy)
console.log(undefined || null); // 输出: null (都为 falsy,返回最后一个)
&&
(逻辑与)操作符&&
操作符用于逻辑“与”运算。它会从左到右依次求值,直到找到第一个假值(falsy)并返回它;如果所有操作数都是真值(truthy),则返回最后一个操作数。
示例:
console.log("Hello" && "World"); // 输出: "World" (都为 truthy)
console.log(0 && "Hello"); // 输出: 0 (0 是 falsy)
console.log("Hi" && 0); // 输出: 0 (0 是 falsy)
console.log(42 && "Hi"); // 输出: "Hi" (都为 truthy)
console.log(null && "Hello"); // 输出: null (null 是 falsy)
||
操作符返回第一个真值,或者如果没有真值,则返回最后一个假值。&&
操作符返回第一个假值,或者如果没有假值,则返回最后一个真值。这些运算符常用于设置默认值(短路赋值),例如:
let name = userInput || "Default Name";
在这个例子中,如果 userInput
为假值,则 name
将被赋值为 "Default Name"
。