首頁 > web前端 > js教程 > 主體

javascript函數基礎之函數宣告、提升、重複、刪除實例詳解

伊谢尔伦
發布: 2017-07-25 09:50:45
原創
1666 人瀏覽過

函數宣告語句

  使用function關鍵字,後面接著一組參數以及函數體

function funcname([arg1 [,arg2 [...,argn]]]){
    statement;
}
登入後複製

  funcname是要宣告的函數名稱的識別碼。函數名稱之後的圓括號中是參數列表,參數之間使用逗號分隔。當呼叫函數時,這些標識符則指稱傳入函數的實參

  [注意]function語句裡的花括號是必需的,這和while循環和其他一些語句所使用的語句塊是不同的,即使函數體內只包含一條語句,仍然必須使用花括號將其括起來

function test()//SyntaxError: Unexpected end of input
function test(){};//不报错
while(true);//不报错
登入後複製

提升

  在作用域系列博文的第三篇中,提到過函數聲明提升(hoisting),函數名稱和函數體都提升

foo();
function foo(){
    console.log(1);//1
}
登入後複製

  上面這個程式碼片段之所以能夠在控制台輸出1,就是因為foo()函數宣告進行了提升,如下所示:

function foo(){
    console.log(1);
}
foo();
登入後複製

重複

  變數的重複宣告是無用的,但函數的重複宣告會覆寫前面的宣告(無論是變數或函數宣告)

//变量的重复声明无用var a = 1;
var a;
console.log(a);//1
登入後複製
//由于函数声明提升优先于变量声明提升,所以变量的声明无作用
var a;
function a(){
    console.log(1);
}
a();//1
登入後複製
//后面的函数声明会覆盖前面的函数声明
a();//2
function a(){
    console.log(1);
}
function a(){
    console.log(2);
}
登入後複製

  所以,應該避免在同一作用域中重複宣告

刪除

  和變數宣告一樣,函數宣告語句所建立的變數無法刪除

function foo(){
    console.log(1);
}
delete foo;//false
console.log(foo());//1
登入後複製

以上是javascript函數基礎之函數宣告、提升、重複、刪除實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板