1、const宣告乙個唯讀的常量。一旦宣告,常量的值就不能改變。
2、const宣告的變數不得改變值,這意味著,const一旦宣告變數,就必須立即初始化,不能留到以後賦值。
3、const的作用域與let命令相同:只在宣告所在的塊級作用域內有效。
4、const命令宣告的常量也是不提公升,同樣存在暫時性死區,只能在宣告的位置後面使用。
5、const宣告的常量,也與let一樣不可重複宣告。
6、對於復合型別的變數,變數名不指向資料,而是指向資料所在的位址。const命令只是保證變數名指向的位址不變,並不保證該位址的資料不變,所以將乙個物件宣告為常量必須非常小心。
7、如果真的想將物件凍結,應該使用object.freeze方法。
8、es5只有兩種宣告變數的方法:var
命令和function
命令。es6除了新增let
和const
命令,後面章節還會提到,另外兩種宣告變數的方法:import
命令和class
命令。所以,es6一共有6種宣告變數的方法。
9、頂層物件,在瀏覽器環境指的是window
物件,在node指的是global
物件。es5之中,頂層物件的屬性與全域性變數是等價的。
10、es6中,var
命令和function
命令宣告的全域性變數,依舊是頂層物件的屬性;另一方面規定,let
命令、const
命令、class
命令宣告的全域性變數,不屬於頂層物件的屬性。也就是說,從es6開始,全域性變數將逐步與頂層物件的屬性脫鉤。
js ES6學習筆記 Proxy
1 proxy 用於修改某些操作的預設行為,等同於在語言層面做出修改,所以屬於一種 元程式設計 meta programming 即對程式語言進行程式設計。2 proxy 可以理解成,在目標物件之前架設一層 攔截 外界對該物件的訪問,都必須先通過這層攔截,因此提供了一種機制,可以對外界的訪問進行過濾...
js ES6學習筆記 Reflect
1 reflect物件與proxy物件一樣,也是 es6 為了操作物件而提供的新 api。reflect物件的設計目的有這樣幾個。2 reflect.get方法查詢並返回target物件的name屬性,如果沒有該屬性,則返回undefined。3 reflect.set方法設定target物件的na...
js ES6學習筆記 修飾器
1 修飾器對類的行為的改變,是 編譯時發生的,而不是在執行時。這意味著,修飾器能在編譯階段執行 2 function testable target testable class mytestableclass console.log mytestableclass.istestable true ...