我正在玩javaScript,发现一些令人困惑的东西..
var a = [1,2,3];
var b = [1,2,3];
var c = '1,2,3';
a==b // false
b==c // true
c==a // true
Run Code Online (Sandbox Code Playgroud)
幕后发生了什么?有谁知道吗?
显然,与字符串相比,数组会被转换为逗号分隔的字符串.[更新:正如Sawant正确指出的那样,它正在调用数组的toString()方法.]但是与数组相比的数组只是作为数组保留,只有相同的实例才与它自身相同.
这是你应该永远使用===而且从不使用的一个很好的理由==.
如果需要按照它们包含的元素比较数组,请使用isEquallodash库中的函数.
| 归档时间: |
|
| 查看次数: |
118 次 |
| 最近记录: |