淺談es6的變量let、const、var

一、const作用:用來聲明常量,即不能變化的量
1.塊級作用域

if (true) {
    const a = 0;
	console.log(a)//0
	if (true) {
		const a = 10;
		console.log(a)//10
       }
   }
console.log(a)//報錯,a未定義

2.先聲明再使用

console.log(a)//報錯,a未定義
const a = 10

3.同個塊級下,聲明常量的時候,應該初始化, 並且聲明後值不可更改

const a;
console.log(a) //報錯信息,a沒有初始化
//常數變量不能重複賦值
const b = 10;
b = 20
console.log(b)//報錯
//const可以修改複雜數據類型的值,比如數組對象等,但是不能給複雜數據類型直接賦值
const c = [30, 40]
c[0] = 50
console.log(c)//輸出結果爲[50,40],
c = [60, 70]
console.log(c)//報錯

二、let作用
1.塊級作用域,和const用法一樣
2.先聲明再使用,和const用法一樣
3.暫時性死區

//在塊級{}裏用let聲明瞭變量num,則num會和{}內進行綁定,與外部的num無關
var num = 10
if (true) {
	console.log(num)//報錯,num未定義
	let num = 20
}

4.let和var用法經典面試題

for (var i = 0; i < 6; i++) {
	setTimeout(() => {
		console.log(i)//輸出6個6
       })
}
for (let i = 0; i < 6; i++) {
     setTimeout(() => {
         console.log(i)//輸出0、1、2、3、4、5
     })
 }

三、var的作用
1.全局作用域
2.變量可以先使用再聲明(本身就是一個bug)

四、總結
如果使用的變量值不需要變化可使用const來定義,比如函數,數學公式值等等,js在解析的時候不用時時監控該值的變化,效率會更高

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