在 JavaScript 中,逻辑或运算符 || 和逻辑与运算符 && 的返回值分别是什么?请说明它们的计算规则。
考察说明
考察对 JavaScript 逻辑运算符返回值机制的理解,即短路求值及其返回操作数而非布尔值的特性。
回答思路
- 【回答框架 1】在 JavaScript 中,|| 和 && 返回的不一定是布尔值,而是两个操作数之一。|| 运算符首先对第一个操作数进行真值判断,如果为真则直接返回第一个操作数;如果为假则返回第二个操作数。例如,表达式 0 || 'default' 的返回值为 'default',因为 0 被视为假值。
- 【回答框架 2】&& 运算符同样先判断第一个操作数的真值,如果为假则直接返回第一个操作数;如果为真则返回第二个操作数。例如,表达式 1 && 2 的返回值是 2,因为 1 被视为真值,继续计算第二个操作数并返回它。
- 【回答框架 3】这些规则遵循短路求值原则,即对于 ||,如果第一个操作数为真,则不会计算第二个操作数;对于 &&,如果第一个操作数为假,则不会计算第二个操作数。这种机制常用于实现默认值赋值(如 x = a || b)和条件执行(如 a && doSomething())。
- 【关键点 1】|| 返回第一个真值操作数,若无真值则返回最后一个操作数。
- 【关键点 2】&& 返回第一个假值操作数,若全为真值则返回最后一个操作数。
- 【关键点 3】返回值是操作数本身,不强制转换为布尔值。
- 【关键点 4】短路求值避免不必要的计算和潜在的副作用。
- 【易错点 1】容易误认为逻辑运算总返回布尔值,实际返回的是操作数。
- 【易错点 2】在涉及赋值或函数调用时,可能因短路而跳过执行,需注意副作用。