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

Javascript
比较精简的Javascript拖动效果函数代码
一个可以得到元素真实的背景颜色的javascript脚本
代码精简的可以实现元素圆角的js函数
用JS实现的一个include函数
IE 缓存策略的BUG的解决方法
$()JS小技巧
js右键菜单效果代码
XML的代替者----JSON
清空代码防止查看源代码的js代码
一个JS翻页效果
用js获取点击图片的值!
用innerHTML &符号副值给文本框后会变成&的方法
让iframe自适应高度(支持XHTML,支持FF)
dsfasdfasdf
用ASP将SQL搜索出来的内容导出为TXT的代码
弹出广告特效(一个IP只弹出一次)的代码
javascript实现的动态文字变换
服务器安全设置的几个注册表设置
取键盘键位ASCII码的网页
用倒置滤镜把div倒置,再把table倒置。

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


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