gpt4 book ai didi

javascript - 有人能解释一下为什么 "operator precedence"适用于 javaScript 中的 "||"、 "&&"等逻辑运算符吗

转载 作者:行者123 更新时间:2023-12-04 00:03:18 25 4
gpt4 key购买 nike

谁能解释一下为什么运算符优先级适用于 JavaScript 中的 ||&& 等逻辑运算符?这在以下操作中意味着什么:

真||假&&假

首先计算 false && false,因为 && 运算符的优先级高于 JavaScript 中的 || 运算符。据我所知,JavaScript 引擎不会评估 false && false 因为在 || 之前运算符有一个 true 文字,当 || 运算符之前的某些东西是 true 时, || 之后的东西运算符不会被计算这在 JavaScript 中称为“逻辑运算符的短路”,另一个例子是:

真 || 警报()

即使函数调用的优先级高于 || 运算符,函数调用也不会发生,另一个例子是

真|| x = 7

如果在 JavaScript 中逻辑运算符的短路是真的,那么上面的代码一定不会出错,因为 x = 7 没有被计算,因为在 || 之前> 运算符有一个 true 文字。

最佳答案

运算符优先级只决定分组,而不是实际的评估顺序:https://stackoverflow.com/a/46506130

  • 真 || false && false 变为 true || (false && false) 但仍然从左到右求值。

  • 真 || alert() 被评估为 true || (alert()) 而不是 (true || alert)()

  • 真 || x = 7 被评估为 (true || x) = 7 并导致错误,而不是 true || (x = 7)

关于javascript - 有人能解释一下为什么 "operator precedence"适用于 javaScript 中的 "||"、 "&&"等逻辑运算符吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61319353/

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