JavaScript执行顺序的说明

时间:2013-10-31 09:15:57

标签: javascript

您好我正在使用排序对数组进行排序,并且不知道为什么/如何/ JavaScript执行代码的顺序。

下面的代码

arr = ["cc", "aa", "dd", "bb"];

console.log(arr);

fun = function() {
    var re = arr;
    console.log(re);

    re = re.sort();
    console.log(re); 
};


fun();

我知道sort()方法改变了原始数组对象,但是为什么当我在sort方法之前的console.log时,我没有得到数组的原始顺序?

有人可以解释JavaScript的执行顺序吗?我认为它从上到下执行。

感谢。

更新:JSfiddle下面

http://jsfiddle.net/BPNWC/

2 个答案:

答案 0 :(得分:2)

您的第一个console.log打印出["cc", "aa", "dd", "bb"]

您的第二个console.log打印出["cc", "aa", "dd", "bb"] 因为没有改变

您的第三个console.log打印出[ 'aa', 'bb', 'cc', 'dd' ] 因为sort();将按字母顺序“排序”数组。

答案 1 :(得分:0)

如果要检查'Array.join'方法的中间执行步骤,可以传递比较器并检查它收到的值:

arr.sort(function(a, b) {
    console.log([a, b], arr);             // log both parameters and the array
    return (a==b ? 0 : (a < b ? -1 : 1)); // return re comparison result
});