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

JavaScript中赋值、逻辑与及三元运算符执行顺序咨询

代码执行顺序解析:envArr && envArr[0] ? envArr[0] : "env1"

这行代码是**短路逻辑运算符(&&)和三元运算符(?:)**的组合,JavaScript 里&&的优先级比?:高,所以执行顺序是先算&&部分,再用结果做三元判断,分情况拆解:

你的代码场景(envArr未赋值,值为undefined)

  1. 先计算envArr && envArr[0]
    • undefined 属于 JavaScript 里的假值,&&有短路特性:左边为假时,直接返回左边的值,不会执行右边的envArr[0],所以这部分结果是undefined。
  2. 执行三元判断:undefined ? envArr[0] : "env1"
    • 条件是假值(undefined),所以执行冒号后的表达式,最终envName被赋值为"env1"。

其他场景补充

  • 如果envArr = ["prod"]:
    1. envArr是真值,&&会继续执行右边的envArr[0],得到"prod",所以envArr && envArr[0]结果是"prod"(真值)。
    2. 条件为真,执行冒号前的envArr[0],envName被赋值为"prod"。
  • 如果envArr = []:
    1. 空数组是真值,&&执行envArr[0]得到undefined,所以envArr && envArr[0]结果是undefined。
    2. 条件为假,envName被赋值为"env1"。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 22:12:07