我总是这样成功地对我的数组进行排序(当我不想要标准的词典排序时):
var arr = […] // some numbers or so
arr.sort(function(a, b) {
return a > b;
});
Run Code Online (Sandbox Code Playgroud)
现在,有人告诉我这是错的,我需要return a-b改为.这是真的,如果是的话为什么?我测试了我的比较功能,它有效!另外,为什么我的解决方案在出错时会如此常见?
JavaScript是否具有未定义的行为(类似于C),还是完全由规范定义,并且确定性?
请注意,我正在丢弃实现错误和规范差异.我也在丢弃像Math.random()和的东西Date.now().
是否有一段JavaScript代码的行为不完全由JavaScript规范决定,因此具有"未定义的行为"?