以下两项中的每一项都包含相同的字符串值,但使用 '===' 的比较返回 false。
(hiddenColumns[hidenColsIndex] === cells[metricColsIndex].columnName)
使用 '==' 的比较返回 true
(hiddenColumns[hidenColsIndex] == cells[metricColsIndex].columnName)
为什么?
以下两项中的每一项都包含相同的字符串值,但使用 '===' 的比较返回 false。
(hiddenColumns[hidenColsIndex] === cells[metricColsIndex].columnName)
使用 '==' 的比较返回 true
(hiddenColumns[hidenColsIndex] == cells[metricColsIndex].columnName)
为什么?
//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");
};
您不是在比较相同类型的两个对象。值之一(或两者)不是字符串。
=== 表示比较值和数据类型。
当您想要比较两个元素的值以及它们的数据类型时,=== 应该为 false。
在您的情况下,第一个语句是错误的,因为它们是两种不同的数据类型在第二种情况下,该语句是正确的,因为值是相同的(考虑比较两个普通对象)