javascript學習記錄(二)-function函式的應用之sort()函式詳解
阿新 • • 發佈:2019-01-25
javascript 雖然式一種弱指令碼語言,但是他也是支援函式的宣告的,此處的函式和java中的函式是有很大差別的。其中值得一提的是javascript 不支援重寫舉個栗子:
function someFunction(num1){
console.info(num1);
}
function someFunction(num1,num2){
console.info(num1+"..."+num2);
}
這兩種寫法是一樣的。後面的someFunction 函式會覆蓋第一個someFuntion 函式,因為在javascript中即使是函式也是引用變數的一種,同名的引用變數在棧中指向的是同一塊堆記憶體。在javascript看來這一同一方法。當然其在函式內部內建了arguments一個包含所有引數的陣列.如上的num1可以用arguments[0]來獲取,num2可以用arguments[1]來獲取。
做了做末多的鋪墊我們接下來說一下陣列的正序轉換方法sort(),要注意的是sort()比較的是字串而不是數值,舉個栗子:
var num = [1,2,3,5,10];
num.sort(); // 1,2,3,10,5
因為在字串比較的時候10 在5的前面,解決辦法:
由上可見函式可以作為值傳遞function someSort(val1,val2){ if (val1<val2) { console.info(val1+"位於"+val2+"之前"); return -1; } else if (val1>val2) { console.info(val1+"位於"+val2+"之後"); return 1; } else { return 0; } } num.sort(someSort); console.info(num.valueOf());