1. 程式人生 > >javascript學習記錄(二)-function函式的應用之sort()函式詳解

javascript學習記錄(二)-function函式的應用之sort()函式詳解

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());
由上可見函式可以作為值傳遞