強烈推薦 阮一峰寫的《ecmascript6入門》
let和const命令
let命令:
let用於宣告變數,用法和var相似,但是不完全相同,有以下幾點區別
① let命令只在當前作用域中有效;
② let不會發生『變數提公升』的現象,變數一定要宣告後在使用他,否則會報錯。
問題:es6支援es5 但是如果發生以下情況也會報錯
1var demo = 13;
2if(true
)
原因:只要在塊級作用域內存在 let ,const 命令就會形成乙個『暫時性死區』 ,即使全域性中宣告了該變數也會報錯
連帶結果:typeof 不是很管用啦!
if(true)
③ let 不允許在相同作用域內重複宣告
④ 塊級作用域:
es5:只存在全域性作用域和函式作用域
es6: 新增了塊級作用域,而且還允許其巢狀使用,也可以直接使用
還允許在塊級作用域內宣告函式是不是方便的
⑤ 雖然let宣告的變數不會被提公升,但是函式的宣告還是會被提公升的!
const命令:
①新增的常量的宣告命令-------宣告後為唯讀屬性不允許改變
②其他特點和let一樣,不會提公升,會形成暫時性死區,
變數的『解構賦值』
解構賦值:es6允許按照一定的模式,從陣列和物件中提取值,然後對變數進行賦值。
let [a,b,c] = [1,2,3] //
如果是es5的話只能乙個個的宣告變數並賦值啦!
解構賦值的本質應該就是一種匹配模式,只要等號兩邊的模式相同就可以進行賦值啦!如果匹配不到 就會返回undefined給變數
let [a, b, ...c] = ["a"]a
//"a"
b //
undefined
c //
返回空陣列是 『...』 的功勞哦
還有「不完全解構」 也就是值多於變數
let [a, [b], c] = [1,[2 , 3], 4]a //
1b //
2 [2,3]沒有完全解構
c //
4
es6學習之路(3) 解構賦值
es6 允許按照一定模式,從陣列和物件中提取值,對變數進行賦值,這被稱為解構 destructuring 本質上,這種寫法屬於 模式匹配 只要等號兩邊的模式相同,左邊的變數就會被賦予對應的值 1,陣列 let foo,bar baz 1,2 3 foo 1 foo 1 bar 2 baz 3 let...
ES6學習之路1 變數的宣告
它是variable的簡寫,可以理解成變數的意思。在es6之前,js宣告變數都是採用的var。例項1 var str hello world console.log str hello world 例項2 var a 2 if true console.log a 3例項3 for var i 0 ...
es6學習過程(一)
一 let關鍵字的用途 在平時我們寫 的時候,都是用var來宣告乙個變數 其實也沒有其他的關鍵字了 但是在es6出來以後,除了var,還可以使用let來宣告變數。為什麼會出現let而不僅僅使用var就好了呢?那是因為var這個關鍵字在某些時候是很坑的。var的不足之處 1.如果使用var宣告的變數會...