當前位置:學問君>人在職場>電腦培訓>

javascript函數到底是什麼

學問君 人氣:1.96W

javascript函數是一個比較奇怪的東西,接觸一段時間你就會犯迷糊,弄不明白它到底是什麼了。你是否會因爲有的javascript函數沒有名字而莫名其妙,是否會因爲javascript函數的參數沒有類型而抓狂,是否爲javascript函數以表達式的形態存在而徹底崩潰。正是因爲有了這些煩惱才讓javascript函數值得我們尋味,我想從函數的構成來細說函數,這聽起來像是一句廢話,講任何東西當然是從構成去談,但是由於javascript函數你確實捉摸不了它的形態,因此這裏我是從一個標準函數的構成來細說。

javascript函數到底是什麼

1.函數名

在面向對象語言中,函數一般都有名稱,但javascript函數不一定,這類函數稱爲匿名函數或者函數直接量。它就像是一個表達式,然後這個表達式的左值即可以用來調用函數,也可以存儲在變量中傳遞給其它的函數。它的好處就是不用每次調用的時候創建新的對象。

複製代碼 代碼如下:

var f= function (x) {return x*x;};

alert( f(6) );

以上例子就會在頁面上彈出視窗顯示36

2.參數

javascript函數的'參數也比較神奇,調用javascript函數時如果填寫的參數和函數定義的參數不一致(例如個數不一致),程序不會出錯,有時甚至能調用成功,這對於java語言是無法想象的,但javascript函數可以做到。例如上面的例子,我們這樣調用:

複製代碼 代碼如下:

alert(f(6,7))

結果仍然是36。雖然這樣不會出錯,但是我們仍然想函數被正確的調用,保證調用時和函數定義的參數數目一致。透過Arguments對象可以獲取函數調用者的參數數目。修改上述代碼。

複製代碼 代碼如下:

var f= function (x) {

if(th>1) {

return "out of range";

} else {

return x*x;

}

};

alert( f(6,7) );

處理獲取函數調用者的參數數目,還可以獲取到這些參數的值,將上述代碼再進行一番修改:

複製代碼 代碼如下:

var f= function (x) {

if(th>1) {

return arguments[0]*arguments[1];

複製代碼 代碼如下:

} else {

return x*x;

}

};

alert( f(6,7) );

你能猜出結果是多少嗎?對,是42。

TAGS:函數