-2

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

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

使用 '==' 的比较返回 true

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

为什么?

4

3 回答 3

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");
};
于 2012-06-27T18:59:26.670 回答
1

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

于 2012-06-27T17:50:54.310 回答
0

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

当您想要比较两个元素的值以及它们的数据类型时,=== 应该为 false。

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

于 2012-06-27T17:51:09.883 回答