理解 JavaScript 三元运算符中的运算符优先级
在处理 JavaScript 的三元运算符时,掌握运算符优先级以确保代码执行至关重要故意的。在给定的示例中,混乱源于三元运算符与赋值运算符的组合。
解释代码
提供的代码:
<code class="javascript">h.className += h.className ? ' error' : 'error'</code>
在 JavaScript 中语法不正确。赋值运算符的左侧 h.className 已经是一个表达式,因此尝试直接对其应用另一个运算符将导致错误。
正确的语法
为了让代码执行时没有错误,应该重写为:
<code class="javascript">h.className = h.className + (h.className ? ' error' : 'error')</code>
在这种情况下,括号将整个三元运算括起来,确保其结果分配给 h.className 。这一点至关重要,因为三元运算符的优先级低于赋值运算符。
运算符优先级
运算符优先级定义运算符在代码表达式中求值的顺序。在 JavaScript 中,三元运算符(?:)的优先级低于赋值运算符(=),也就是说三元运算符会先于赋值操作执行。
因此,当上面的代码正确执行时,它检查 h.className 是否已设置。如果是,则将“error”添加到现有值;否则,它会将 'error' 指定为 h.className.
的值以上是运算符优先级如何影响 JavaScript 的三元运算符?的详细内容。更多信息请关注PHP中文网其他相关文章!