提问人:user3055964 提问时间:10/14/2023 最后编辑:VLAZuser3055964 更新时间:10/14/2023 访问量:71
执行赋值和逻辑 AND 和三元运算符 [duplicate]
Execution of Assigning value and Logical AND and Ternary operator [duplicate]
问:
我正在学习 JavaScript,但我不明白第二行的执行顺序是什么。请指教!
let envArr;
const envName = envArr && envArr[0] ? envArr[0] : "env1";
答:
2赞
Vivek Tikar
10/14/2023
#1
这里的输出将被考虑用于执行三元运算符。envArr && envArr[0]
另一方面,做这样的事情(这是不合逻辑的,但只是为了举例)——
envArr && (envArr[0] ? envArr[0] : "env1");
将仅基于执行三元操作,其输出将与 anded,简化版本将如下所示。envArr[0]
envArr
envArr && output_of_ternary
顺便说一句,从您的问题中进行上述检查的更好方法是这样的 -
const envName = envArr?.[0] || 'env1'
我们使用的是可选链接,您可以在此处找到有关可选链接的更多详细信息
评论
(envArr && envArr[0]) ? envArr[0] : "env1"
envArr && (envArr[0] ? envArr[0] : "env1")