從 var 到 let/const
以前的**申明使用 var,這些變數都是函式級作用域的,它們的作用域是包含它們的最內層的函式。var 的行為偶爾會使人混淆,這裡有乙個例子:
let 和 const 更為嚴格,會丟擲更多異常(比如,在變數作用域內訪問還沒有申明的變數)。塊級作用域有助於保持**片段的作用更侷限
也就是說,你不能盲目地將即存**中的 var 替換為 let 或 const。在重構的時候必須非常小心
首選 const。所有不會改變值的變數都可以使用它。
其它的使用 let,用於值會被改變的變數。
避免使用 var。
string 插值
以前的寫法 中你想把在字串中引用一些值,你需要將那些值和一些零碎的字串連線起來:
es6 中你可以在模板字面量中使用字串插值:
從函式表示式到箭頭函式
當前以前的 **中,在使用了函式表示式的時候,你必須小心處理 this。我會在下面的示例中建立乙個 _this(a 行) 作為輔助變數,這樣在 b 行才可能訪問到指向 uicomponent 物件的 this。
而在 es6 中,使用箭頭函式將不用擔心 this(a 行) 有問題:
template string 模板字串
解決了 以前的**在字串功能上的痛點。
第乙個用途:字串拼接。將表示式嵌入字串中進行拼接,用 和${}來界定。
es6時在這個字串模板裡面可以實現各種換行,只用在內部寫就行了,不用新增換行符
**如下:
另外es6還推出了新的一套函式,箭頭函式,極簡了函式的寫法,這個箭頭函式有以下幾個特點
不需要 function 關鍵字來建立函式
省略 return 關鍵字
繼承當前上下文的 this 關鍵字
學習筆記 Es6 let和const
console.log insane 報錯 上面 使用了乙個五層的塊級作用域,每一層都是乙個單獨的作用域。第四層作用域無法讀取第五層作用域的內部變數。但內層作用域可以定義外層作用域的同名變數。如下 2 塊級作用域的出現,實際上使得獲得廣泛應用的匿名立即執行函式表示式 匿名 iife 不再必要了。ii...
ES6 let 和 const命令(學習筆記)
1.暫時性死區 只要塊級作用域內有 let 命令,它所宣告的變數就繫結 bounding 這個區域,不再受外部的影響。也就是說在 塊內使用 let 命令宣告變數之前,該變數都是不可用的,在語法上,這被稱為 暫時性死區 var tmp 123 if true es6明確規定,如果區塊中存在 let 和...
ES6 let與const,解構賦值
ecma script2015以後的 沒有塊級作用域,導致var在for if內宣告的變數可以被全域性訪問 es6之前的解決辦法使用iife 立即執行函式 變數提公升,使 不好理解。舉例 var a 1 function show show 結果是a undefined 複製 let宣告的變數有塊級...