Have a look at this code sample or go to the 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'); I would have expected both tests to output a === b, but only the first one does. The second one outputs a != b. Can anyone explain this behaviour? How can I efficiently compare arrays in javascript?