ES6——let、const與變量聲明的幾種方式

let

1、所聲明的變量只在let所在的代碼塊中有效。例:

{
	var attr1 = 'a'
	let attr2 = 'b'
}
console.log(attr1)// a
console.log(attr2)// 報錯

2、不存在變量提升

    console.log(attr1)//undefined
    var attr1 = 'a'
    console.log(attr2)//報錯
    let attr2 = 'b'

3、存在暫時性死區: ES6中規定如果區塊中存在let、const命令,區塊中對這些命令聲明的變量一開始就形成了封閉作用域。凡是在聲明前使用這些變量都會報錯。

	var attr1 = 'hello'
    if (true){
        console.log(attr1)//報錯
        let attr1 = 'world'
        console.log(attr1)
    }

4、let命令不允許在相同作用域內聲明相同的變量

{
	var attr1 = 'a'
	let attr2 = 'b'//報錯
}

5、let只能存在於當前作用域的頂層

{
	if(true){
		let x = 'test'
	}
	if(true)let y = 666  // 報錯  因爲 y  沒有出現在當前作用域的頂層
}

const

1、const聲明的值不能修改,const在聲明的時候就必須初始化。
2、const聲明常量的作用域只在聲明所在代碼塊中有效。
3、const聲明的常量不存在提升。和let一樣存在暫時性死區。

ES6中聲明變量的幾種方式

ES6中可以使用 var、function、let、import、class聲明變量。其中前兩種在ES5中就支持。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章