1. 程式人生 > 其它 >關於ES6(一,let和const)

關於ES6(一,let和const)

ES 的全稱是 ECMAScript , 它是由 ECMA 國際標準化組織,制定的一項指令碼語言的標準化規範,ES6 全稱 ECMAScript 6.0 ,是 JavaScript 的下一個版本標準,2015.06 發版。

let、const 和 block 作用域

let 允許建立塊級作用域,ES6 推薦在函式中使用 let 定義變數,而非 var,

使用let宣告的變數,具有塊級作用域,有且僅有let宣告的才有此特性:

if (true) { 
     let a = 10;
 }
console.log(a) // a is not defined

可以看到,let在這個if的作用域中,則不會在if的作用域之外生效.

另外,let宣告的變數在作用域中不受外界定義的影響:

 let a=50
if(true){
    let a=10
    console.log(a)//輸出10
}

let 小結:

  • let關鍵字就是用來宣告變數的

  • 使用let關鍵字宣告的變數具有塊級作用域

  • 在一個大括號中 使用let關鍵字宣告的變數才具有塊級作用域 var關鍵字是不具

備這種條件

  • 防止迴圈變數變成全域性變數

  • 使用let關鍵字宣告的變數沒有變數提升

  • 使用let關鍵字宣告的變數具有暫時性死區特性

  • 來說說const吧

  • 同樣在塊級作用域有效的另一個變數宣告方式是 const,它可以宣告一個常量

    所謂常量,就是不能再被改變的量,並且使用const宣告必須賦值,否者會報錯:

       

    const L = 3;
    L = 100; // Assignment to constant variab

    但在這種情況是例外的:

  • const ary = [100, 200];
    ary[0] = 'a';
    ary[1] = 'b';
    console.log(ary); // ['a', 'b']; 
    ary = ['a', 'b']; // Assignment to constant variable.

    可以通過陣列定義改變陣列內的值,但改變之後,仍不可再改變否則仍會報錯