let,const,var區別

weixin_48456565發表於2020-11-23

一.JavaScript中let、const、var 的區別

1.是否存在變數提升?

var宣告的變數存在變數提升(將變數提升到當前作用域的頂部)。即變數可以在宣告之前呼叫,值為undefined
let和const不存在變數提升。即它們所宣告的變數一定要在宣告後使用,否則報ReferenceError錯。
在這裡插入圖片描述
2.是否存在暫時性死區?
let和const存在暫時性死區。即只要塊級作用域記憶體在let命令,它所宣告的變數就“繫結”(binding)這個區域,不再受外部的影響。
在這裡插入圖片描述
3.是否允許重複宣告變數?
var允許重複宣告變數。let和const在同一作用域不允許重複宣告變數

在這裡插入圖片描述
4.是否存在塊級作用域?
var不存在塊級作用域。let和const存在塊級作用域。
在這裡插入圖片描述
5. 是否能修改宣告的變數?
var和let可以。
const宣告一個只讀的常量。一旦宣告,常量的值就不能改變。const宣告的變數不得改變值,這意味著,const一旦宣告變數,就必須立即初始化,不能留到以後賦值
在這裡插入圖片描述

相關文章