函數是由事件驅動的或者當它被調用時執(zhí)行的可重復使用的代碼塊。本文重點給大家介紹js基礎知識盲點總結之函數。
一、函數中的arguments對象
每個函數內部都有一個arguments,它能返回函數所接受的所有參數
注意:argumens接收的是實參
如下是利一個利用arguments特性編寫的求和函數:
function sumOnSteroids(){
var I, res = 0;
var number_of_params = arguments.length;
for(I = 0; I < number_of_params; i++){
res += arguments[i];
}
return res;
}
二、關于變量的作用域
在javascript中,不能為變量定義特定的塊級作用域,但是可以定義其所屬的函數域。
javascript中的全局變量指的是聲明在所有函數之外的變量
在一個函數內部定義的局部變量,在函數外部是不存在的
如果在函數內部聲明一個變量時沒有使用var語句,該變量就會被默認為全局變量(即便在函數中定義外部也可以訪問)。這種變量會在函數被調用之前不存在,調用函數后會首次被創(chuàng)建并賦予全局作用域
三、自調函數
自調函數是可以在定義后自行調用的函數,基本結構如下:
{
function(name){
alert(‘Hello' + name + ‘!');
}
}(‘Martin')
后面的()可以進行參數傳遞,其內聲明的值會自動傳遞到function的參數中
使用如上這種自調匿名函數不會產生任何的全局變量
四、可自行重寫的函數
這種函數的特點是可以在執(zhí)行之后自己進行函數重寫,下面是一個例子:
function a(){
alert(“A”);
a = function(){
alert(“B”)
};
}
第一次調用a()時,執(zhí)行alert(“A”);第二次調用a()時,執(zhí)行alert(“B”)。因為在第一次執(zhí)行該函數時,其將全局變量a重新定義了
以上所述是小編給大家介紹的Javascript基礎知識盲點總結之函數的相關知識,希望對大家以上幫助!