1. ECMA6
ECMA6的兼容性,各個瀏覽器有不同程度的支持,包括chrome和firefox都有部分不支持。
IE8:
1.1 let和const
ES6擴展了兩個用來聲明變量的關鍵字,分別是 let 和 const,其和 var 關鍵字有不同之處
let和const:
1. 塊級作用域 {...} 有效
2. 不會做預處理,因此沒有變量的提升
3. 同名變量不能重複定義
4. const 的值不可變,即常量,let 的值可變
5. let 適用於塊級作用域中定義新的變量,並只在此塊中有效。const 適用於定義常量
1.2 變量的結構賦值
ES6擴展了變量的解構賦值,使得變量賦值更爲簡化。其最大應用就是函數多返回值和變量值交換。
用法:
數組:var [a, b] = [22, 'pkbai']; console.info(a, b)
對象:var {name, age} = { name: 'pkbai', age: 22 }; console.info(name, age);
1.3 各個數據類型擴展
數值型:
Number.isFinite(i) // 判斷數值是否有窮
Number.isNan(i) // 參數是否 Nan
Number.isInteger(i) // 參數是否整數
Number.parseInt(i) // 將參數轉換爲整數
Math.trunc(i) // 去除數值類型的小數點,沒有四捨五入
字符串:
xxx.contains(str); // 字符串是否包含指定字符串
xxx.startsWith(str); // 字符串是否以指定字符串開頭
xxx.endsWith(str); // 字符串是否以指定字符串結尾
xxx.repeat(count); // 字符串重複 count 遍
模板字符串:ES6擴展了方便的模板字符串,可以用來替換原來麻煩的字符串拼接操作。模板字符串用 `...` 來定義。而拼接的變量則用 ${...} 來替換。譬如:對象 var pk = { name: 'pkbai', age: 22 }; 打印出你的姓名和年齡
1. 非模板字符串方式
console.info("我是:" + pk.name + ", 今年:" + pk.age);
2. 模板字符串方式
console.info(`我是:${pk.name}, 今年:${pk.age}`);
對象:
1. 增強的對象寫法和方法寫法
對象增強:
var name, age = 'pkbai', 22;
非增強:var obj = { name: name, age: age };
增強:var obj = { name, age }
方法增強:
非增強:var obj = { test: function() { // ... } }
增強:var obj = { test() { // ... } }
2. Object.is(v1, v2);
3. Object.assign(target, source1, source2..); // 將 source... 的值賦給 target
4. __proto__屬性顯示操作
數組:
Array.from( v ); // 將僞數組對象或可遍歷對象轉換爲真正的數組對象
Array.of( v1, v2, v3 ); // 將一系列值轉爲數組
find( function(value, index, arr) { return true } ); // 找到第一個滿足條件的元素
findIndex( function(value, index, arr) { return true } ); // 找到第一個滿足條件的元素所對應的下標
keys(); // 返回包含所有下標的可迭代對象
values(); // 返回包含所有值的可迭代對象
entries(); // 返回包含所有下標和值的可迭代對象
函數:
1. 箭頭函數:只有一個參數時不用加小括號 ( ),函數體只有一條語句時不用加大括號 { },其默認帶 return
() => // code...
param => { // code... }
(param1, param2) => { // code... }
var fun = function(v) { return v + 3; }
var fun2 = v = v + 3;
2. 形參的默認值
function point( x = 1, y = 2) { this.x = x; this.y = y; }
3. 可變參數
function add(... values) {
let sum = 0;
for (value of values) {
sum += value;
}
return sum;
}
1.4 Set/Map集合
類比 Java 中的 Set 和 Map 集合的操作
1.5 For..of 遍歷
簡單如一
1.5 Promise
promise
1.5 class類
class