"< - "是什么意思?在JS中

时间:2018-01-19 16:10:06

标签: javascript

在以下代码段中我预计会出错,但会返回false。为什么呢?

foo = {}
foo <- "lel"

返回false

当然不是在比较哪一个更大,所以它在做什么?

1 个答案:

答案 0 :(得分:15)

<-并不意味着任何单一标记。您已将<(小于)后跟-(一元- =否定)应用于"lel"。 E.g:

foo < -"lel"

这是错误的,因为-"lel"NaN *,所有NaN的比较都是假的(即使是相等,例如NaN === NaN也是假的)

foo强制<<强制转换为[{1}}和>当其中一个操作数为number且另一个不是]。强制{}编号会产生NaN。所以最后一步是NaN < NaN这是假的,因为,所有与NaN的比较是错误的。)

* ...因为将一元-+应用于字符串会将该字符串强制转换为数字; "lel"强制NaN,然后否定为NaN,因为比较,NaN上的所有数学运算都会产生NaN