【发布时间】:2011-11-10 23:50:46
【问题描述】:
我今天在玩 Javascript 中的数组时发现了这个小宝石:
alert([1, 2, 3] == [1, 2, 3]); //alerts false
数组不等于自身,这让我觉得很奇怪。
但后来我注意到了这一点,这更奇怪:
alert([1, 2, 3] == "1,2,3"); //alerts true
?!?!?!?!!!?
为什么[1, 2, 3] 不是== 本身,而是== 到字符串?
我意识到 == 是 not the same 和 ===。即便如此,到底是什么邪恶的事情能让Javascript先生做出如此诡异的事情呢?
【问题讨论】:
-
当一种语言按照它的规范要求做它应该做的事情时,这并不是邪恶的。鉴于您已经知道
==和===做的事情不同,这不是回答您关于该数组和字符串之间比较的问题吗?
标签: javascript