網頁制作poluoluo文章簡介:JS教程:Chrome對數組的sort方法優化.
var a = 0, b = 0; [0, 0].sort(function() { a = 1; return 0; }); [0, 1].sort(function() { b = 1; return 0; }); alert(a === b); // true or false ?
上面的代碼,除了 Chrome 輸出 false, 其它浏覽器皆為 true.
原因是 Chrome 對數組的 sort 方法進行了優化:
function sort(comparefn) { var custom_compare = (typeof(comparefn) === function); function Compare(x,y) { if (x === y) return 0; if (custom_compare) { return comparefn.call(null, x, y); } ... }
雖然是優化,但也是陷阱。想用 sort 來干點額外體力活時,一定要小心。