我们先来看一个例子。
var everything = [4,'Red', '$200', 'white', 7.4, 12, true, 0.3, false];
console.log(everything.sort(function(a, b) {return a - b;}));
// [4, "Red", "$200", "white", false, 0.3, true, 7.4, 12]
我认为这很奇怪,即使我知道Number("Red"),Number("$200")并且在比较时Number("white")都会给出。NaN
为什么是4在第一个结果?我猜它与 的实现有关Array.prototype.sort,那么我怎样才能看到它的实现呢?