1. 程式人生 > >ES6 變數宣告

ES6 變數宣告

參考來源:http://es6.ruanyifeng.com/#docs/let

let && const

  • let 和 const 都是 ES6 加入的變數宣告命令.
  • 與 var 不同點在於它們都是塊級作用域.
  • const 是一個只讀常量,一旦宣告就無法修改.事實上, const 保證的並不是所宣告的值不改變,而是所宣告值得地址不發生改變.
  • let 和 const 不會出現變數提升. 因此 let 宣告的變數不能夠在沒有宣告的情況下就直接使用.ES5 只有全域性作用域和函式作用域,沒有塊級作用域
if(true){
	var
a = 10 let b = 1 console.log(a, b) // 10, 1 } console.log(a, b) // b is undefined
for 迴圈有一個特別之處,就是設定迴圈變數的那部分是一個父作用域,而迴圈體內部是一個單獨的子作用域。
for (let i = 0; i < 3; i++) {
  let i = 'abc';
  console.log(i);
}
// abc
// abc
// abc
var tmp = new Date()
function f(){
    console.log(tmp)
    // undefined
    var
tmp = 10 } f()
在 ES5 中, window物件與全域變數是等價的. 在 ES6 進行了改進,var 宣告的物件與全域變數等價,而 let 宣告的則不同.
var a = 12
window.a
//12

let b = 12
window.b
//undefined