1. 程式人生 > >Javascript ES6 let 和 var 比較

Javascript ES6 let 和 var 比較

                                                                                       JavaScript ES6 的 let 和 var 的比較

    在JavaScript 1.7中, let 關鍵詞被新增進來, 我聽說它宣告之後類似於”本地變數“, 但是我仍然不確定它和 關鍵詞 var 的具體區別。

    回答:

    不同點在於作用域, var關鍵詞的作用域是最近的函式作用域(如果在函式體的外部就是全域性作用域), let 關鍵詞的作用域是最接近的塊作用域(如果在任何塊意外就是全域性作用域),這將會比函式作用域更小。

    同樣, 像var 一樣, 使用let 宣告的變數也會在其被宣告的地方之前可見。 

下面是Demo 例子。

全域性(Global)

當在函式體之外它們是平等的。

let me = 'go'; //globally scoped
var i = 'able'; //globally scoped

函式(Function)

當瞎下面這種, 也是平等的。 

function ingWithinEstablishedParameters() {
    let terOfRecommendation = 'awesome worker!'; //function block scoped
    var sityCheerleading = 'go!'; //function block scoped
};

塊(Block)

這是不同點, let 只是在 for 迴圈中, var  卻是在整個函式都是可見的。 

function allyIlliterate() {
    //tuce is *not* visible out here

    for( let tuce = 0; tuce < 5; tuce++ ) {
        //tuce is only visible in here (and in the for() parentheses)
    };

    //tuce is *not* visible out here
};

function byE40() {
    //nish *is* visible out here

    for( var nish = 0; nish < 5; nish++ ) {
        //nish is visible to the whole function
    };

    //nish *is* visible out here
};
文章出處: Javascript - “let” keyword vs “var” keyword