es6學習筆記

1,對於es6變量聲明方式,主要是有了let和const的方式,於let而言,是嚴格聲明變量的,不會存在變量提升的情況,而且會形成一個函數塊,綁定裏面的數據,一旦在塊級作用域的時候沒有聲明變量就使用會導致錯誤。let和const也是不可以重複賦值的,const存的是一個內存地址,指向一個對象,可以爲這個對象增加屬性,但是不可以爲const聲明的常量賦值,const a = [];a.push("Hello"); // 可執行a.length = 0; // 可執行a = ["Dave"]; // 報錯

注意:var a = [];for (var i = 0; i < 10; i++) {
a[i] = function () {
console.log(i);
};
}
a[6](); // 10

我的理解是a數組裏面存的是console.log(i),而不是console.log(1)等。
2,解構賦值。對象解構賦值和數組一一對應不一樣,解構賦值是沒有次序先後,只要對象對得上就會有可以賦值。eg:var { bar, foo } = { foo: "aaa", bar: "bbb" },如果對象不一樣,就要有別名,bar:baz; 而數組的解構賦值屬於模式匹配的原則。let [,,third] = ["foo", "bar", "baz"];另外一種是 let [head, ...tail] = [1, 2, 3, 4];head // 1tail // [2, 3, 4]…把剩下的全都打包。
字符串的解構賦值 const [a, b, c, d, e] = 'hello';
函數的解構賦值,當採取默認值的時候,是賦值對象獲得默認值。function move({x = 0, y = 0} = {}) {
return [x, y];
}

3,字符串。首先是擴展自己編碼的知識。ASCII是一個字節存的數據,有2的8次方=256種。UNICODE則是用16進制存的數據,由於無法辨認一個編碼的整體是3個字節還是3個不同的字節。於是用了UTF8等方式,在第一個自己上記錄自己是多少字節的。
這裏寫圖片描述
以上是解決存的問題。js是以utf16存的,又因爲8位是一個字節,所以js固定存2字節的數據,所以讀取的時候多個字節不能辨認。於是es6提供了codePointAt()的方法來索引轉碼後的數字。又因爲js允許採用“\uxxxx”形式表示一個字符,其中“xxxx”表示字符的碼點,默認爲4位,當是5位的時候就要用{}進行類似看出一整體的操作"\u{20BB7}" 字符串裏面的var name = "Bob", time = "today";
Hello name,howareyou {time}?,用反引號可以在字符串內部進行換行等操作,同時,前面可以跟一個函數名,tagHello ${ a + b } world ${ a * b };,tag函數接收的第一個參數是非模板值,可以用索引來獲取值,其他的參數既可以用解構賦值也可以用數組賦值一一對應。
3,數組,
Array.from(arrayLike).map(x => x * x);`

4,函數擴展。fetch(url, { method = 'GET' } = {})函數可以設置默認值。 function add(...values) value是參數集合。rest前面可以有其他參數,後面不可以有其他參數。箭頭函數
var f = () => 5;
// 等同於
var f = function (){ return 5 };
var sum = (num1, num2) => num1 + num2;
// 等同於
var sum = function(num1, num2) {
return num1 + num2;
};

5,Set:add(value):添加某個值,返回 Set 結構本身delete(value):刪除某個值,返回一個布爾值,表示刪除是否成功。has(value);返回一個布爾值,表示該值是否爲 Set 的成員。clear():清除所有成員,沒有返回值。
Map:
size:返回成員總數。
set(key, value):設置 key 所對應的鍵值,然後返回整個 Map 結構。如果 key 已經有值,則鍵值會被更新,否則就新生成該鍵。
get(key):讀取 key 對應的鍵值,如果找不到 key,返回 undefined。
has(key):返回一個布爾值,表示某個鍵是否在 Map 數據結構中。
delete(key):刪除某個鍵,返回 true。如果刪除失敗,返回 false。
clear():清除所有成員,沒有返回值。

剩下的promise,遍歷器等有點難了,下次繼續(●ˇ∀ˇ●)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章