我正在做一些JavaScript比较。我复制像这样的代码:数组是否有一个元素等于元素?
if (input.val() != input.data('original'))
//do stuff
我希望我将不得不改变一些东西,因为在这种情况下input
是<select multiple>
与限制为1可选择的选项号码,但工作没有变化。
我检查,事实证明:
13 == [13] //true
13 === [13] //false
我没想到的是,比较会解开的阵列。
这是我可以使用和依赖的JavaScript中的一个预期和记录的功能吗?或者这只对我有用,因为一些浏览器开发人员决定使其工作?
见规格的''==。这是你应该总是使用'==='代替的许多原因之一。 – SLaks
parseInt(13,10)=== 13'对于'+ [13]'是相同的,所以强制该数组返回'13',并且比较非严格的类型强制 – adeneo
@SLaks我不能找到它,'=='不是最可以googleable的字符串。谷歌搜索'JavaScript比较'我找不到明确说明这种行为的资源。 –