2
比爾蜥蜴聲明在this answer中使用等號運算符(==
)的危險和缺點。然而,關於臥底「邪惡雙胞胎」>=
和<=
的報道很少。<= and > =在Javascript中的風險。如何避免它們?
0 >= '' // true
0 <= '' // true
'' >= 0 // true
'' <= 0 // true
因此,我的問題是:
- 不同類型應該元素默認可比性?
1.1如果不是,應該返回什麼值?false
?undefined
?請記住,如果a >= b === false
,這意味着a < b === true
。 - 可以做些什麼來避免,以實用的方式,奇怪的情況下,例如?
- 由於大於(
<
)和小於(>
)的操作符也會進行類型轉換,所以它們有沒有奇怪的情況?
只是javascript的危險,我猜。 [WAT](https://www.destroyallsoftware.com/talks/wat) –
[This](http://stackoverflow.com/questions/13091058/best-and-or-shortest-way-to-do-strict非類型轉換 - 比較)可能是感興趣的。 –
偉大的問題。按照約定,我會在這種情況下進行類型轉換,因爲0 <''沒有意義,而0 ==''類。另外,FWIW,===也不是防彈的。 +0 === -0,根據http://ecma262-5.com/ELS5_HTML.htm#Section_11.9.6 – bishop