在javascript中,何时===两个'相等'字符串的比较会返回false?

时间:2012-06-27 17:46:47

标签: javascript

以下两项中的每一项都包含相同的字符串值,但使用'==='的比较返回false。

(hiddenColumns[hidenColsIndex] === cells[metricColsIndex].columnName)

使用'=='进行比较会返回true

(hiddenColumns[hidenColsIndex] == cells[metricColsIndex].columnName)

为什么?

3 个答案:

答案 0 :(得分:2)

//a and b are equal in data but not equal in type
var a = 1;
var b = "1";

//== will return true
if (a == b)
{
    console.log("true");
}
else
{
    console.log("false");
};

//=== will return false
if (a === b)
{
    console.log("true");
}
else
{
    console.log("false");
};

答案 1 :(得分:1)

您没有比较两个相同类型的对象。其中一个值(或两者)不是字符串。

答案 2 :(得分:0)

===表示比较值和数据类型。

如果要比较两个元素的值及其数据类型,===应为false。

在您的情况下,第一个语句是false,因为它们是两种不同的数据类型 在第二种情况下,该语句为真,因为值相同(考虑比较两个普通对象)