【发布时间】:2020-09-24 05:09:58
【问题描述】:
为什么当一个数组与其对应的字符串比较时,它的评估结果为真?
var a = [1,2,3];
var b = '1,2,3';
console.log(a==b);// true
变量a 存储分配给它的数组的内存地址。那么内存地址如何等于该数组的对应字符串。
【问题讨论】:
-
虽然我不知道
==的确切机制,但重要的是要意识到它不会执行严格的比较。当操作数属于不同类型时,它首先尝试将它们转换为相同类型,然后再进行比较。如果你想进行严格的比较,你会想使用===,在你的情况下它会返回false。 -
a 被强制转换为字符串进行比较
标签: javascript arrays reference equality