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

Javascript
用javascript实现的图片马赛克后显示并切换加文字功能
通用的javascript 换行色换列色的小js
滑动门,简洁,新手上路制作篇 (小鸽子系列)
文字模糊特效
javascript实现的又一个不错的滑动导航效果
css实现的图片模糊效果
javascript跟随鼠标x,y坐标移动的字效果
js实现用于建立新的一行且增加的四个文本框为空的且被禁用
XML+XSL 与 HTML 两种方案的结合
javascript生成/解析dom的CDATA类型的字段的代码
IE与FireFox的兼容性问题分析
关于脚本操作文本域的问题
刷新时清空文本框内容的js代码
又一个不错的js浮动广告代码
网页背景渐变效果代码
非常漂亮的让背景如此暗淡(一种弹出提示信息时页面背景色调改变的方法)
[原创]jser必看的破解javascript各种加密的反向思维方法
eval(function(p,a,c,k,e,d)系列解密javascript程序
从sohu弄下来的flash中展示图片的代码
漂亮的widgets,支持换肤和后期开发新皮肤(2007-4-27已更新1.7alpha)

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-03-17   浏览: 379 ::
收藏到网摘: 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 来干点额外体力活时,一定要小心。