es6已經出了2年左右的時間了,雖然部分瀏覽器沒有支援es6,不過在babel等幫助下,我們依然可以使用es6相關的內容,現在對es6常用內容的總結。
變數結構是按照一堆的規則從陣列或者物件中提取值並賦予給變數。
陣列解構:
let [x, y, z] = [1, 2, 3];
console.log(x); //1
console.log(y); //2
console.log(z); //3
解構預設值:
let [a = 1] = ;
console.log(a); //1
let [b = 2] = [undefined];
console.log(b); //2
let [c = 3] = [4];
console.log(c); //4
解構變數賦值:
let [d = 1, e = d] = [5];
console.log(d); //5
console.log(e); //5
物件解構:
let = ;
console.log(football); //"shoot"
console.log(basketball); //"dunk"
結構失敗:
let = ;
console.log(baseball); //undefined
物件解構完整寫法:
let = ;
console.log(pingpong); //"shoot"
復合解構:
let } = };
console.log(g); //1
console.log(h); //2
字串解構:
const [i, j, k] = 'abc';
console.log(i); //'a'
console.log(j); //'b'
console.log(k); //'c'
let = 'kkkkk';
console.log(len); //5
函式內解構應用:
function arraytest([a, b, c])
arraytest([1, 2, 3]); //6
function objtest()
objtest(); //4
常用的字串拓展:
for-of迴圈:
let a = 'abcde';
for(let i of a)
模板字串:
let dd = 'amazing';
document.body.innerhtml = `string template test $
p>
div>
`; //
string template test amazing
常用的陣列拓展:
拓展運算子:
console.log(...['x', 'y', 'z']); //'x'
'y''z'
let a = ;
a.push(...[1, 2, 3]);
console.log(a); //[1,2,3]
function test(x, y)
test(...[1, 2, 3]); //3
let b = [1,2,3];
let c = [...b];
console.log(c); //[1,2,3]
console.log([...[1,2],...[3,4],...[5,6]]); //[1,2,3,4,5,6]
array.from方法(將類陣列轉換為陣列):
function fromtest()
fromtest('a','b','c'); //['a','b','c']
常用的物件拓展:
物件簡潔表示式:
let a = '******';
let b = ;
console.log(b); //
let obj =
}obj.fun(); //'******'
let obj1 =
}console.log(obj1.abc); //1
obj1.fun();
object.assign:
let target = ;
let source1 = ;
let source2 = ;
object.assign(target, source1, source2);
console.log(target); //
object.assign為淺拷貝:
let obj2 = };
let obj3 = object.assign({}, obj2);
obj2.a = 2;
obj2.b.c = 3;
console.log(obj3); //}
常用的函式拓展:
函式預設值:
function
defaultvalue
(x = 0, y = 0)
defaultvalue(); //0
defaultvalue(1); //1
defaultvalue(1, 2); //3
rest引數:
function
resttest
(...values)
resttest(1, 2, 3, 4); //[1,2,3,4]
箭頭函式:
var arrow = (x, y) => x + y;
console.log(arrow(1, 2)); //3
var arrow2 = () => ;
console.log(arrow2()); //undefined
var arrow3 = () => ();
console.log(arrow3()); //
//箭頭函式返回物件需要加圓括號
//箭頭函式的this會保持不變
var a = 1;
function
fun() , 100);
settimeout(function
() ,100);
}fun.call();
set和和map是新的資料結構,常用的情景是陣列去重。
陣列去重:
let a = new set();
[1, 2, 3, 3, 4, 5, 6, 1].foreach(i => a.add(i));
console.log(array.from(a)); //[1,2,3,4,5,6]
let b = new map();
b.set('a', 1);
b.set('b', 2);
console.log(b); //map(2)
let c = ;
b.set(c, 3);
console.log(b.get(c)); //3
新增了類的支援,統一了繼承的寫法。
類的基本結構:
class
a getvalue()
}let a = new a(1, 2);
a.getvalue(); //3
let aa = new a(2, 2);
aa.getvalue(); //4
a.x = 5;
a.getvalue(); //7
aa.getvalue(); //4
類的繼承:
class
bextends
a getothervalue()
}let b = new b(1,2);
b.getvalue(); //3
b.getothervalue(); //-1
好了,es6常用的一些方法已經總結完了,不過還有一些遺漏的:比如let和const,這個比較簡單;還有es6模組化機制,這個放在模組化的文章中來說;當然還有最重要的非同步操作promise、generator、async函式,這個也會單獨開一篇文章來說。
over…
es6 常用總結
let 和 const let 宣告塊級變數 const 宣告塊級常量,簡單資料型別不可以變,物件和函式可以變 因為const指向位址 1 在函式表示式中使用,只有乙個引數時,括號 可以忽略 2 沒有引數和多個引數時要加上 3 函式只有一行的簡潔函式體時,不用宣告return直接返回 塊級函式體需要...
es6常用知識點總結
1.定義變數的方式 let 1 沒有變數提公升 var具有變數提公升 即在當前作用域的最上面定義這個變數 但不賦值 例 console.log x var x 20 顯示undefined console.log m let m 100 報錯 2 let不可以重複宣告 例 var x 10 var ...
es6 知識總結 4
我們在程式設計過程中常常用到物件導向,物件建立例項這個方法,但是es6中給我封裝了乙個class類 下邊給大家介紹一下 萬事萬物皆物件 1.類是由物件 抽象 泛化出來的 2.物件是由類建立出來的 3.物件叫類的具體例項 function person name,age person.prototyp...