-2

次の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

同じタイプの2つのオブジェクトを比較していません。値の1つ(または両方)が文字列ではありません。

于 2012-06-27T17:50:54.310 に答える
0

===は、値とデータ型を比較す​​ることを意味します。

2つの要素の値とデータ型を比較す​​る場合、===はfalseである必要があります。

あなたの場合、最初のステートメントは2つの異なるデータ型であるため、falseです。2番目のケースでは、値が同じであるため、ステートメントはtrueです(2つのプレーンオブジェクトが比較されることを考慮)。

于 2012-06-27T17:51:09.883 に答える