2018年9月12日 星期三

【JavaScript】兩種函式宣告的差別——聲明的提前 var a = function () {} & function a(){}


var a = function () {….} :Expression

・這種寫法應該比較穩定
var hereOrThere = function () { // 表達式
    return 'here';
};

console.log(hereOrThere()); // console'here'

hereOrThere = function () {
    return 'there';
};
(聲明提前)
var hereOrThere  //聲明提前

hereOrThere=function () { // 表達式
    return 'here';
};

console.log(hereOrThere()); // console 'here'

hereOrThere = function () {
    return 'there';
};

function a() {….}:statement

  • function a () {…} 是一種聲明,因此會提前
function hereOrThere() { 
    return 'here';
}

console.log(hereOrThere()); // console 'there'

function hereOrThere() { 
    return 'there';
}
(聲明提前)

function hereOrThere() {
    return 'here';
}

function hereOrThere() {  //聲明提前
    return 'there';
}

console.log(hereOrThere()); // console 'there'

推薦文章:JavaScript中對變量和函數聲明的“提前(hoist)”

沒有留言:

張貼留言

【JavaScript】用物件Mapping的方法

If的寫法 我們希望當變數是a時就回傳1,變數是b就回傳2,變數是c就會回傳3,一般寫法就是用if,但是這樣會很冗 ​ // IF style var word if(word == 'a'){ word = 1 } else if...