一尘不染

Javascript三元运算符的运算符优先级

javascript

我似乎无法与三元运算符结合使用此代码的第一部分(+ =)。

h.className += h.className ? ' error' : 'error'

我认为这段代码的工作方式如下:

h.className = h.className + h.className ? ' error' : 'error'

但这是不正确的,因为这会导致控制台出现错误。

所以我的问题是我应该如何正确插入此代码?


阅读 603

收藏
2020-05-01

共1个答案

一尘不染

h.className = h.className + (h.className ? ‘ error’ : ‘error’)

您希望操作员为之工作h.className,最好对此有所具体。
当然,不应有任何伤害 h.className += ' error',但这是另一回事。

另外,请注意+优先于三元运算符:JavaScript运算符优先级

2020-05-01