You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中&&与||运算符优先级问题:为何alert(5 || 1 && 0)输出5

运算逻辑详细解释

首先明确两个JS逻辑运算的核心规则:

  • 运算符优先级:&&(逻辑与)的优先级高于||(逻辑或),多运算符混合运算时,会优先执行优先级更高的运算符
  • 逻辑运算符的返回规则:JS中&&和||不会强制返回布尔值,会直接返回参与运算的某个原始操作数,同时支持短路机制(只要能确定运算结果,就不会执行后续的表达式)

接下来分步拆解代码alert( 5 || 1 && 0 );的执行过程:

  1. 第一步:按优先级确定运算顺序,优先计算&&对应的表达式1 && 0
    逻辑与&&的执行规则是:先判断第一个操作数转布尔值是否为false,如果是直接返回第一个操作数(短路),否则返回第二个操作数。
    这里1转布尔值为true,所以1 && 0的结果是第二个操作数0。
  2. 第二步:原表达式简化为5 || 0,计算这个逻辑或表达式
    逻辑或||的执行规则是:先判断第一个操作数转布尔值是否为true,如果是直接返回第一个操作数(短路,后续表达式不会执行),否则返回第二个操作数。
    这里5转布尔值为true,所以直接返回第一个操作数5,不会再判断后面的0。

最终alert接收的参数是5,所以运行结果为5。

内容的提问来源于stack exchange,提问作者Ahmet Dursun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 13:09:00