1、解構
解構通俗點說,就是通過一種特定格式,快捷的讀取物件/陣列中的資料的方法
基本用法:(如果右邊是物件,左邊也要用物件的格式,解構出來就是變數了,再也不是屬性了)
//解構物件
var ouser=
//es5讀資料的方法
console.log(ouser['name'],ouser['age']);//aaa 20
//let=ouser;
let=ouser;//還能給預設值
console.log(name,age,***);//aaa 20 man
-------------------------------------------
//解構陣列
let arr=[10,20,30];
//let [a,b,c]=arr;
//[10, 20, 30]
//如果只想解構乙個
let [,b,]=arr;
console.log(b);//20
基本應用:
//解構二維陣列
let arr=[10,[100,200],300];
//let [a,b,c]=arr; //b解構的是二維陣列
//把二維陣列解構出來
let [a,[b,d],c]=arr;
console.log(a,b,d,c); //10 100 200 300
-------------------------------------------
//交換兩個變數的值
//es5
let a=10,b=20,tmp=null;
tmp = a;
a=b;
b=tmp;
console.log(a,b)
//es6解構
let a=10,b=20;
[b,a]=[a,b];//這裡不用let,解構出來是變數,前面已經定義了
console.log(a,b);//20 10
//用解構修改區域性變數的值
let ouser=,
name='bbb',
age=40;
(=ouser);//用小括號括起來,就被認為是結構表示式
console.log(name,age)
//其他解構
let name='aaa',age=20;
(=)console.log(name2,age2,name,age) //bbb 40 bbb 40
解構表示式作為引數、解構**物件:
//解構表示式作為引數(引用還是複製?)
let ouser=
function show(obj)
show(=ouser); //作為引數傳給函式
console.log(name,age); //aaa 20 已經解構出來了,在外面就相當於變數了
-------------------------------------------
//解構**物件:一級級往下解構,遇到同名要改名字
let ouser=,
'group2': }}
let=ouser;
let=myclass;
let =group1;
let =group1;
console.log(group1,group2);
解構不定引數及巢狀解構:
//把b,c解構到不定引數
let arr=[10,20,30];
let [a,...other]=arr;
console.log(a,other[0],other[1]);//10 20 30
-------------------------------------------
//es5複製陣列
var arr=[10,20,30];
var arr2=;
//arr2=arr ;這樣不叫複製陣列,叫引用,指向同乙個記憶體位址,一方修改另一方會跟著修改
for(var i=0;i
es6筆記 變數的解構賦值
模式匹配賦值,左邊是陣列,右邊也是陣列,一一對應賦值 例子 let a,b,c 1,2,3 解構賦值允許指定預設值,只有當乙個陣列成員 嚴格等於undefined,預設值才會生效 字串的結構賦值 字串也可以解構賦值,這是因為此時,字串被轉換成了乙個類似陣列的物件 例子 const a,b,c,d,e...
培訓ES6筆記
1 剩餘操作符 let rest function a,rest rest 1,2,3,4,5 傳入引數 let print function a,b,c print 1,2,3 print 1,2,3 var m2 math.max 8,9,4,1 可以替代concat var arr1 1,3 ...
ES6筆記 物件
依據阮一峰教程摘取的自己可能用到的特性 屬性的簡潔表示法 function f x,y 等同於 function f x,y f 1,2 object方法簡寫 const o 等同於 const o object.assign 可列舉物件的合併 同名屬性的合併 淺拷貝const target con...