ES6筆記01-聲明變量

ES6只有六種聲明變量的方法:php

var

命令和code

function

命令,blog

let

內存

const

命令,作用域

import

命令和get

class

命令。因此,ES6一共有6種聲明變量的方法。it

const

聲明一個只讀的常量。一旦聲明,常量的值就不能改變。io

const

聲明的變量不得改變值,因此const一旦聲明變量,就必須當即初始化,不能留到之後賦值console

在ES6中let

命令,用來聲明變量。用法相似於function

var

,可是所聲明的變量,只在

let

命令所在的代碼塊內有效。

{
  let a = 10;
  var b = 1;
}
a // ReferenceError: a is not defined.
b // 1

let不存在變量提高。

let

不像

var

那樣會發生「變量提高」現象。因此,變量必定要在聲明後使用,不然報錯。

console.log(test1); // 輸出undefined
console.log(test2); // 報錯ReferenceError
var test1= 2;
let test2= 2;

暫時性死區。只要塊級做用域內存在

let

命令,它所聲明的變量就「綁定」(binding)這個區域,再也不受外部的影響。

var tmp = 123;
if (true) {
  tmp = 'qq'; // ReferenceError 在 let

聲明變量前,對

tmp

賦值會報錯
let tmp;
}

ES6明確規定,若是區塊中存在 let

const

命令,這個區塊對這些命令聲明的變量,從一開始就造成了封閉做用域。凡是在聲明以前就使用這些變量,就會報錯。

if (true) {
  // TDZ開始
  tmp = 'abc'; // ReferenceError
  console.log(tmp); // ReferenceError
  let tmp; // TDZ結束
  console.log(tmp); // undefined
  tmp = 123;
  console.log(tmp); // 123
}

 
轉載於猿2048:➪《ES6筆記01-聲明變量》

相關文章
相關標籤/搜索