宣告變數(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...