JS中"< - "的含义是什么?

Ada*_*dam 2 javascript

在下面的代码片段中,我预计会出错,但会返回false.为什么?

foo = {}
foo <- "lel"
Run Code Online (Sandbox Code Playgroud)

返回false

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

T.J*_*der 15

<-并不意味着任何东西作为单一的标记.你有<(小于)后跟-(一元-=否定)适用于"lel".例如:

foo < -"lel"
Run Code Online (Sandbox Code Playgroud)

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

(碰巧的是foo被强制转换为数字<[ 当其中一个操作数是数字型而另一个不是时]是什么<>做什么.而强迫{}数字也会产生NaN.所以最后一步NaN < NaN是假的因为,所有的比较NaN都是错误的.)


*...因为应用一元-+字符串将该字符串强制转换为数字; "lel"强迫NaN,然后否定这会给你,NaN因为比较,所有数学运算NaN结果NaN.