1. 程式人生 > >在JS中var、let和const的區別

在JS中var、let和const的區別

圖片 ons 使用 target 現象 基本類 zone 詳細介紹 src

var有變量提升

x = 4; // 變量 x 設置為 4

console.log(x) //輸出 4

var x; // 聲明 x

技術分享圖片

上面代碼相當於下面的

var x; // 聲明 x
x = 4; // 變量 x 設置為 4

console.log(x) //輸出 4

let不存在變量提升

技術分享圖片

在代碼塊內,使用let命令聲明變量之前,該變量都是不可用的。這在語法上,稱為“暫時性死區”(temporal dead zone,簡稱 TDZ)。由於存在TDZ現象,所以let不存在變量提升。

const

  • 聲明常量,不可再賦值

  • const保證的是變量指向的地址不可變,而不能保證地址指向的值不可變,如果是基本類型,地址指向的就是值,但是如果是引用類型就要註意了,引用類型的值時可變的

在JS中var、let和const的區別