我似乎无法与三元运算符结合使用此代码的第一部分(+ =)。
h.className += h.className ? ' error' : 'error'
我认为这段代码的工作方式如下:
h.className = h.className + h.className ? ' error' : 'error'
但这是不正确的,因为这会导致控制台出现错误。
所以我的问题是我应该如何正确插入此代码?
h.className = h.className + (h.className ? ‘ error’ : ‘error’)
您希望操作员为之工作h.className
,最好对此有所具体。
当然,不应有任何伤害 h.className += ' error'
,但这是另一回事。
另外,请注意+
优先于三元运算符:JavaScript运算符优先级
从高到低顺序如下: ^ not - (一元运算) * / + - ..(字符串连接) < > <= >= ~= == and or
如果你有一个如2 + 3 * 4那样的表达式,是先做加法呢,还是先做乘法?我们的中学数学告诉我们应当先做乘法——这意味着乘法运算符的优先级高于加法运算符。 下面这个表给出Python的运算符优先级,从最低的优先级(最松散地结合)到最高的优先级(最紧密地结合)。这意味着在一个表达式中,Python会首先计算表中较下面的运算符,然后在计算列在表上部的运算符。 下面这张表(与Python参考手册中的那个
通过前面的学习我们知道运算符有不同的类型,当这些不同类型的运算符出现在同一个表达式中时,就必须遵循运算符的优先级来进行运算,才能保证运算的合理性和结果的正确性、唯一性。运算符的优先级决定了表达式中各个部分执行运算的先后顺序。 下表中详细介绍了 C# 中运算符的优先级顺序: 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[整型表达式] 左到右 () 圆括号 (表
运算符的优先级决定了不同的运算符在表达式中计算的先后顺序,下表列出了 MySQL 中的各类运算符及其优先级。 优先级由低到高排列 运算符 1 =(赋值运算)、:= 2 II、OR 3 XOR 4 &&、AND 5 NOT 6 BETWEEN、CASE、WHEN、THEN、ELSE 7 =(比较运算)、<=>、>=、>、<=、<、<>、!=、 IS、LIKE、REGEXP、IN 8 | 9 & 10
所有的数学运算都认为是从左向右运算的, Java 语言中大部分运算符也是从左向右结合的,只有单目运算符、赋值运算符和三目运算符例外,其中,单目运算符、赋值运算符和三目运算符是从右向左结合的,也就是从右向左运算。 乘法和加法是两个可结合的运算,也就是说,这两个运算符左右两边的操作数可以互换位置而不会影响结果。运算符有不同的优先级,所谓优先级就是在表达式运算中的运算顺序。 一般而言,单目运算符优先级较
条件(三元)运算符是 JavaScript 仅有的使用三个操作数的运算符。一个条件后面会跟一个问号(?),如果条件为 truthy ,则问号后面的表达式A将会执行;表达式A后面跟着一个冒号(:),如果条件为 falsy ,则冒号后面的表达式B将会执行。本运算符经常作为 if 语句的简捷形式来使用。(MDN) 三元运算符,也称条件运算符、三目运算符。 三元运算符可以代替简单的 if 语句。 1. 语