当前位置: 首页 > 图文教程 > 网络编程 > Javascript > JS教程:Chrome对数组的sort方法优化

Javascript
HTML TO JavaScript 转换
JavaScript TO HTML 转换
VBScript版代码高亮
JavaScript版代码高亮
JS、HTML代码运行工具
特殊字符、常规符号及其代码对照表
根据分辨率不同,调用不同的css文件
javascript操作表格
给网页加个彩色窗口
怎么用javascript进行拖拽2
DIV任意拖动的问题
javascript的函数
日历-指定日期的新闻
javascript小技巧 超强推荐
网页中移动的广告效果 鼠标悬停
必须点击广告才能进入的代码
onmousewheel event 缩放图片效果
[原创]比较方便的onMouseWheel缩放图片效果
关联的Select,可以支持客户端动态更新
Prototype 1.5.0_rc1 及 Prototype 1.5.0 Pre0小抄本

Javascript 中的 JS教程:Chrome对数组的sort方法优化


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-03-17   浏览: 284 ::
收藏到网摘: n/a

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 来干点额外体力活时,一定要小心。