此检查如何与JS中的运算符优先级一起使用

时间:2018-10-31 15:37:26

标签: javascript operators

所以我正在阅读此优先级表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。

如果我正在阅读优先级运算符表。在我看来,它先执行!运算符,然后执行===

它如何预先转换非布尔值,然后进行真实性检查?就像有人可以解释它是如何工作的?

谢谢!

1 个答案:

答案 0 :(得分:2)

  

在我看来,它就像!运算符,然后===。

是的。 16比10高,因此connect的优先级比!高,因此先解决。

  

它如何预先转换非布尔值,然后进行真实性检查?

请参见the spec for !,它指向ToBoolean,其中指出:

  

String:如果参数为空String(其长度为零),则返回false;否则,返回false。否则返回true。