ES6(01 基礎 let和const命令)

2021-08-09 10:48:35 字數 1419 閱讀 3614

宣告變數(6種方法)

es5(2種):var命令和function命令

es6(新新增4種):let命令、const命令、import命令和class命令

let 命令

1. 只在所在**塊中有效

2. 不存在變數提公升

3. 暫時性死區

4. 不允許重複宣告

const 命令

定義:該命令宣告乙個唯讀的常量,一旦宣告就不能改變。

1. 只在所在**塊中有效

2. 不存在變數提公升

3. 暫時性死區

4. 不允許重複宣告

5. 宣告時必須被賦值

本質:const實際上保證的,並不是變數的值不得改動,而是變數指向的那個記憶體位址不得改動。 const 宣告的常量類似於指標,它指向某個引用,也就是說這個「常量」並非一成不變的。

var 命令

5. 在全域性範圍內都有效

6. 會發生」變數提公升「現象

function命令

函式宣告

es5 規定,函式只能在頂層作用域和函式作用域之中宣告,不能在塊級作用域宣告。

es6 規定,塊級作用域之中,函式宣告語句的行為類似於let,在塊級作用域之外不可引用。

針對es6的瀏覽器

- 允許在塊級作用域內宣告函式。

- 函式宣告類似於var,即會提公升到全域性作用域或函式作用域的頭部。

- 同時,函式宣告還會提公升到所在的塊級作用域的頭部。

變數提公升

即變數可以在宣告之前使用,值為undefined

暫時性死區

如果區塊中存在let和const命令,這個區塊對這些命令宣告的變數,從一開始就形成了封閉作用域。凡是在宣告之前就使用這些變數,就會報錯。這在語法上,稱為「暫時性死區」(temporal dead zone,簡稱 tdz)。

作用域

es5:全域性作用域和函式作用域

es6:塊級作用域

塊級作用域

外層**塊不受內層**塊的影響

允許塊級作用域任意巢狀

外層作用域無法讀取內層作用域的變數

內層作用域可以定義外層作用域的同名變數

頂層物件的屬性

頂層物件:在瀏覽器環境指的是window物件,在node指的是global物件。

es6規定,

石川es6課程 3 變數let和常量const

let非常好用,尤其是let的塊級作用域可以解決之前要 function 立刻執行函式做的塊級作用域 可以重複宣告,沒有報錯和警告 無法限制修改 也就是沒有常量的概念 沒有塊級作用域,函式 普通js只有函式才有作用域 function 立刻執行函式 普通js只有函式才有作用域 function 立刻...

學習總結ES6 語法基礎let

首先是let是什麼 let允許你宣告乙個作用域被限制在塊級中的變數 語句或者表示式。與var關鍵字不同的是,它宣告的變數只能是全域性或者整個函式塊的。我來舉乙個例子 通過上述 可以看出在if語句 塊中同時用var和let宣告了變數,但是let宣告的變數在 塊的外面列印是報錯的,而var宣告的變數是正...

ES6 ES6標準let和const語句

es6 新增了let命令,用來宣告變數。它的用法類似於var,但是所宣告的變數,只在let命令所在的 塊內有效。a referenceerror a is not defined.b 1 上面 在 塊之中,分別用let和var宣告了兩個變數。然後在 塊之外呼叫這兩個變數,結果let宣告的變數報錯,v...