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

Javascript
jQuery Selectors(选择器)的使用(七、子元素篇)
jquery 事件执行检测代码
javascript 支持页码格式的分页类
javascript tabIndex属性
jquery tablesorter.js 支持中文表格排序改进
javascript 返回数组中不重复的元素
javascript 文字上下间隔滚动的代码 符合WEB标准 脚本之家修正版
jQuery 开天辟地入门篇一
jMessageBox 基于jQuery的窗口插件
用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
javascript实现的textarea运行框效果代码 不用指定id批量指定
测试你的JS的掌握程度的代码
js 与或运算符 || && 妙用
模仿JQuery.extend函数扩展自己对象的js代码
json 介绍 js简单实例
Ext.MessageBox工具类简介
ASP小贴士/ASP Tips javascript tips可以当桌面
勾选时激活input 否则禁用的javascript代码
javascript 输入文本框时的友好提示
jValidate 基于jQuery的表单验证插件

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


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