讀 ECMAScript 6 筆記 一

2021-08-20 07:44:56 字數 1280 閱讀 1302

let 和 const

1. es6 新增了let命令,用來宣告變數。它的用法類似於var,但是所宣告的變數,只在let命令所在的**塊內有效。

2.let不允許在相同作用域內,重複宣告同乙個變數。

1. 場景一: 塊級作用域內

es5 只有全域性作用域和函式作用域,沒有塊級作用域,這帶來很多不合理的場景。用let命令可以完美解決變數內外層覆蓋的問題;

2. 場景二:  for迴圈裡

es5中

用來計數的迴圈變數只用來控制迴圈,但是迴圈結束後,它並沒有消失,洩露成了全域性變數。

塊級作用域與函式宣告

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

es5 時,是沒有塊級作用域的概念的, 但為了達到塊級作用域相同的用處,我們引用了立即執行函式表示式

iife(immediately-invoked function expression)

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

es6 在附錄 b裡面規定,es6瀏覽器的實現可以不遵守上面的規定,有自己的行為方式。

es6 的塊級作用域允許宣告函式的規則,只在使用大括號的情況下成立,如果沒有使用大括號,就會報錯。

const宣告乙個唯讀的常量。這意味著,const一旦宣告變數,就必須立即初始化,不能留到以後賦值。

const的作用域與let命令相同:只在宣告所在的塊級作用域內有效。

const命令宣告的常量也是不提公升,同樣存在暫時性死區,只能在宣告的位置後面使用。

const宣告的常量,也與let一樣不可重複宣告。

頂層物件,在瀏覽器環境指的是window物件,在 node 指的是global物件。es5 之中,頂層物件的屬性與全域性變數是等價的。

es6 為了改變這一點,一方面規定,為了保持相容性,var命令和function命令宣告的全域性變數,依舊是頂層物件的屬性;另一方面規定,let命令、const命令、class命令宣告的全域性變數,不屬於頂層物件的屬性.

ES6 全套教程 ECMAScript6 筆記

當前進度 函式的擴充套件 最近在看這篇文件學習es6。其中有些錯誤的地方做個更正,以供參考 1。變數的解構賦值一節有這樣一段 let foo let syntaxerror duplicate declaration foo let baz let syntaxerror duplicate dec...

ECMAScript6掃盲筆記 一

ecma組織推出的ecmascript是乙個標準 協議 js是協議的實現。ecmascript簡稱ecma或es。目前使用最多的是es5.1,es6正式推出是在2015年。就醬 es6 es2015 相容性 es6 es2015 支援 ie10 chrome firefox 移動端 nodejs。和...

讀阮一峰《ECMAScript 6 入門》小結

讀阮一峰 ecmascript 6 入門 小結,let在塊級作用域內有效,var有變數提公升 變數可以在宣告之前使用,值為undefined 宣告的變數有記憶體洩露 const定義常量,不能改變 如果區塊中存在let和const命令,這個區塊對這些命令宣告的變數,從一開始就形成了封閉作用域。凡是在宣...