gpt4 book ai didi

javascript - 为什么三元表达式在 Javascript 中的 falsy 值之后执行?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:06:31 24 4
gpt4 key购买 nike

据我所知,表达式不会在 Javascript 中的虚假值后执行。例如在下面的语句中:

const result = undefined && 5;
console.log(result);

result 将是未定义的。

但是:

const result = false && false ? 'T' : 'F';
console.log(result);

result 将等于 F。为什么三元表达式仍然执行?

最佳答案

这是因为 operator precedence : && 的优先级 (6) 高于 ? : (4), 所以

false && false ? 'T' : 'F'

评估为

(false && false) ? 'T' : 'F'

因此,左侧首先评估为 false(采用第一个 false),然后继续进行条件运算符。

如果您在 && 之后加上括号,result 将是 false,如您所料:

const result = false && (false ? 'T' : 'F');
console.log(result);

关于javascript - 为什么三元表达式在 Javascript 中的 falsy 值之后执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57783496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com