所以我正在阅读此优先级表https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence
它说20-1,其中20是最高优先级。
16 Logical NOT right-to-left ! …
因此!
运算符的优先级为16。
10 Strict Equality … === …
因此===
运算符的优先级为10。
这行
!'hello' === 'goodbye'
如何执行/阅读?通过阅读,我想。分步进行;
'hello'==='再见'然后检查,反转bool值。因此,如果返回true,则将其设置为false。
如果我正在阅读优先级运算符表。在我看来,它先执行!
运算符,然后执行===
。
它如何预先转换非布尔值,然后进行真实性检查?就像有人可以解释它是如何工作的?
谢谢!
答案 0 :(得分:2)
在我看来,它就像!运算符,然后===。
是的。 16比10高,因此connect
的优先级比!
高,因此先解决。
它如何预先转换非布尔值,然后进行真实性检查?
请参见the spec for !,它指向ToBoolean,其中指出:
String:如果参数为空String(其长度为零),则返回false;否则,返回false。否则返回true。