let const var 宣告變數

2021-10-07 02:50:50 字數 1275 閱讀 5819

let const 是es6新增的用來宣告變數的命令。塊級作用域也是es6新增的

作用域是什麼:

簡單理解的話,就是變數與函式的可訪問範圍

作用域的分類:

全域性作用域、函式作用域(區域性作用域)、塊級作用域

塊級是什麼:

塊級就是 大括號裡面的**塊

塊級作用域:

塊級作用域由 包裹,if 語句和for語句裡面的 也屬於塊作用域

塊級作用域有什麼作用?

塊級作用域是為了解決es5中作用域的問題。比如:

1、記憶體變數可能覆蓋外層變數

var i =5;

function

fun()}

fun();

//輸出undefined

2、用來計數的迴圈變數洩漏為全域性變數

for

(var b =

0; b <

5; b++

)console.

log(b)

// 輸出5

區別:(1)var宣告的變數存在變數提公升的特性

(2)let const 不存在變數提公升

let const 宣告的變數一定要在宣告後使用

(3)let 宣告的變數,只在命令所在的**塊內有效(let 宣告變數會形成塊級作用域),外層作用域無法讀取內層作用域的變數。

比如:

console.

log(a)

結果:報錯

(4)var 和 let 可以先宣告變數後賦值,但是const 命令一旦宣告變數,必須馬上賦值,且一旦宣告值就不能改變相當於常量

因為 const 本質是變數指標,變數指向的那個記憶體位址所儲存的資料不得變動

(5)暫時性死區

暫時性死區是指一進入當前作用域 ,所要使用的變數就已經存在 了,但是不可獲取,只有等到宣告變數那一行**出現,才可以獲取和使用該變數

比如:在**塊內,使用let宣告變數之前,該變數都是不可用的

js系列 let,const,var定義變數

js是弱型別語言,即值決定變數的型別 命名規範 變數名以字母 開始,後跟字母 數字 不能使用關鍵字 比如true if while class等。不加宣告符 web monkey var宣告符 var web monkey let宣告符 let web monkey const宣告符 cont we...

let,const,var定義變數的區別?

一,作用域 const和let 沒有變數提公升,且定義的變數只在let命令所在的 塊生效,在定義之前使用,會報錯 var 變數會被提公升,在全域性範圍內都有效,且可在變數定義之前使用 二 重複宣告 const和let 在同一作用域內,不允許重複宣告同乙個變數 var 允許重複宣告 三 賦值 let ...

ES6的宣告 let,const,var區別

a 報錯 referenceerror a is not definedlet 是在 塊內有效,var 是在全域性範圍內有效 a referenceerror a is not defined b 1let a 1 let a 2 var b 3 var b 4 a identifier a has...