在 JavaScript ES6 標準規範中,其實還有很多的新擴展、新語法、新 API 都很有特色,只是這些就比較不常用了,大部分的功能也都能使用舊方法去實現,至少這些新事物能幫助簡化程序就是一大進步了。
本篇將會簡單地介紹 ES6 其他較實用常見的 API 與擴展,主要知道基本內容就好,並不會深入探討。
let set = new Set();
// 可以使用 add() 方法設置資料內容
set.add(10);
set.add(10);
set.add('text');
set.add({sayHi: 'Hi'});
console.log(map);
// Set(4) {10, "text", {sayHi: "Hi"}}
// 這是基本語法
var proxy = new Proxy(target, handler);
// 此用來攔截變數的 "物件內容",改變它的原始行為
var proxy = new Proxy({}, {
get: function(target, propKey, receiver) {
return 'getting';
},
set: function(target, propKey, value, receiver) {
console.log('setting');
}
});
console.log(proxy.test); // 'getting'
console.log(proxy.other); // 'getting'
// 以下都會執行 console.log('setting');
proxy.abc = 10;
proxy[10] = 'test';
function*
next()
方法,就會繼續執行函數,直到遇到下一個 yield 關鍵字,又會暫停函數的執行,而每一次暫停時會 yiled (產出)一個當前狀態值{value: anyType, done: boolean}
結構的物件for...of
迭代迴圈去取得 yield 返回的 value 值function* gen() {
yield 1;
yield 2;
}
var g = gen();
// 第一次執行 next() - 停在 yield 1
// 返回 Object {value: 1, done: false}
g.next();
// 第二次執行 next() - 停在 yield 2
// 返回 Object {value: 2, done: false}
g.next();
// 第三次執行 next() - 沒有 yield 將會結束
// 返回 Object {value: undefined, done: true}
g.next();
// Unicode 表示法
console.log("\u{41}\u{42}\u{43}"); // ABC
0b
(或0B
)、0o
(或0O
)表示**
關鍵字當作指數運算
// 二進制和八進製表示法
console.log(0b1100011); // 99
console.log(0o143); // 99
// 指數運算
console.log(2**6); // 64