-
ES6 中 通過const來聲明一個常量,
查看全部 -
ES5中 通過下面的方式聲明常量,Objec.definePropery(window,'es',{
? ?value:'es6',
? ?writable:false
})
查看全部 -
live server插件查看全部
-
箭頭函數沒有this查看全部
-
基本數據類型存在棧內存里面
引用數據類型存在堆內存里面
實質上是地址不能被改變
凍結對象Object.freeze(函數),但只能淺層次凍結
Object.keys(obj).forEach(function(key))
查看全部 -
const設置常量時一開始就要賦初始值,不允許重復聲明;不屬于頂層對象window,沒有變量提升(需要先聲明后使用);具有塊級作用域,在括號內有用,超過括號沒有用
查看全部 -
const常量總結
查看全部 -
ES6思維導圖
查看全部 -
mark思維導圖
查看全部 -
箭頭函數中,this將向外層作用域查找指向;
箭頭函數中,不能使用arguments參數
查看全部 -
Object.freeze同樣可能會引入bug(編譯通過,運行不是預期結果,還不報錯。omg!)查看全部
-
類比一下其它語言: 1、java中final關鍵字修飾的變量就是java中的常量,可以通過反射修改訪問屬性,從而“改變”常量。 2、C和C++通過const定義的常量呢?多年不用,都忘了,有小伙伴知道嗎?查看全部
-
Object.defineProperty、writable=false定義的常量,可以重復賦值(編譯通過),但是不會生效(運行時失敗,卻不報錯)。所以這種方法可會隱藏一些程序bug。查看全部
-
var會污染全局變量window。 var會代碼提升(未定義的產量自動識別下文有沒有定義)查看全部
-
1、變量定義的發展歷程
ES3定義常量通常使用var 聲明一個名稱大寫的變量,本質還是變量;
ES5定義常量: -- 但定義之后再去修改值并不會報錯Object.defineProperty(window, 'es', {
????value: 'es6',
????writable: false // 不允許修改
})? ?
es6中定義常量使用const進行聲明
2、const關鍵字特性
不允許重復聲明 -- 重復聲明會報錯
不屬于頂層對象window,但是使用var聲明的變量屬于window對象
不存在變量提升 -- 先聲明在使用,且聲明的時候必須賦值
暫時性死區 -- 在聲明之前使用會報錯,在當前的作用域聲明之前會形成一個暫時性的死區
塊級作用域 -- 花括號之內,避免污染全局
查看全部
舉報