1

[1,2,3] === [1,2,3] が false を返す理由を理解しようとして、ES5 の 11.9.6 節を見ていました。

コード:

a = [1,2,3]
b = [1,2,3]
a === b // false

厳密な等値比較アルゴリズムに関連するルール:

x === y

(1) Type(x) が Type(y) と異なる場合、falseを返します。

...

...

...

(7) x と y が同じオブジェクトを参照している場合、true を返します。それ以外の場合はfalseを返します。

インタープリターが false を返す理由はありますか?

4

5 に答える 5

4

abは 2 つの異なるオブジェクトであり、たまたま同じ Number 値を持っているだけです。そうした場合でもa[0] = 42;b[0]1 に等しくなります。

于 2012-08-12T17:16:52.327 に答える
0

それらは同じオブジェクトを参照していません。そのような単純な。

于 2012-08-12T17:16:32.927 に答える
0

あなたのように見え、異なるオブジェクトaを参照しています。bそれらはそれぞれ同じ値を含み、同じクラスのインスタンスである可能性がありますが、一方を変更しても他方は同じままです。

于 2012-08-12T17:17:02.047 に答える
0

(7) Return true if x and y refer to the same object. Otherwise return false.-それらは同じオブジェクトを参照していません。

于 2012-08-12T17:17:10.523 に答える
0

2 つのオブジェクトが作成されているためです。

于 2012-08-12T17:17:41.067 に答える