簡說ES6中的變量定義:let、const

隨着ES6的關注度的增高,今天有必要介紹下ES6中用let、const來定義變量。javascript

總說:java

 const 關鍵字用在那些永遠不會改變的變量申明, let 用在其餘變量申明上。babel

(1)var 和letide

var,在離它最近的父函數內建立了一個變量的做用域 。函數

let, 在它最近的塊級中建立做用於,這些塊包括 for 循環, if 語句以及其餘塊。google

用實例來講話:指針

實例-1code

function fn ( ) {

    console . log ( x ) ;

    console . log ( y ) ;

    var x = 1 ;

    if ( x === 1 ) {

        let y = 2 ;

    }

    console . log ( y ) ;

}

fn ( ) ;

console . log ( x ) ;

例中,建立了一個 fn 函數,而且調用它。最後一個 console.log()語句會產生一索引

個 ReferenceError ,由於 x只在 fn() 中定義(做用域)。由於變量提高,第一個ip

console.log()將被正常執行。在這個示例中, x 是 undefined 。第二和第三個

console.log(y) 都將出錯,由於 let 比 var 的做用於更加嚴格。 y 變量 只存在於 if 塊裏面,

不在任何其餘地方。俗稱「 臨時死亡區 「。

實例-2:

function fn ( x ) {

    let y ;

    if ( x == 1 ) {

        y = 2 ;

    }

    console . log ( y ) ;

}

fn (1) ;

console . log ( y ) ;

在實例-2中,y有比實例-1更大範圍的做用域。由兩個實例的對比,在ES6中 let 應該徹底取

代 var 。

(2)const

在ES6中, const 表明一個值的 常量索引 (大多數語言都提供這樣的功能),即:變量名字在

內存中的指針不可以改變,可是指向這個變量的值 可能改變。並非一個常量。

(3)說明

新的 let 和 const 關鍵字在ES5中是不生效的,而且在絕大多數可執行環境中也不生效。

可是,經過相似 Babel 優秀的編譯器, 咱們能夠將咱們寫的ES6 JavaScript代碼編譯爲可在瀏

覽器環境中執行的ES5代碼。

相關文章
相關標籤/搜索