このコードサンプルをご覧になるか、jsfiddleにアクセスしてください
function printRelation(a, b, out) {
var text;
if (a === b) {
text = "a === b";
} else if (a == b) {
text = "a == b";
} else {
text = "a != b";
}
$('#' + out).text(text);
}
var a = [0, 0, 2], b = a;
printRelation(a, b, 'out1');
a = [0, 0, 2];
b = [0, 0, 2];
printRelation(a, b, 'out2');
両方のテストが出力されることを期待してa === b
いましたが、最初のテストのみが出力します。2番目のものはを出力しますa != b
。誰かがこの行動を説明できますか?JavaScriptで配列を効率的に比較するにはどうすればよいですか?