console.log(a1);// 1补充ES6的解构赋值虽然好用。但是要注意解构的对象不能为undefined、null。否则会报错,故要给被解构的对象一个默认值。 , A% @4 I7 R5 ?7 h4 N
const {a,b,c,d,e} = obj || {};
复制代码
* t) ~& O7 T3 U9 Q& Q7 s; y: E# Y
二、关于合并数据的吐槽比如合并两个数组,合并两个对象。const a = [1,2,3]; 9 X `/ G) |# M( n! K3 ^
const b = [1,5,6];! r9 I4 a: D1 L) w+ \
const c = a.concat(b);//[1,2,3,1,5,6]: Z$ L: ]3 c- @( G1 z# P o* o
const obj1 = {. S& z; w7 H$ N! C1 O2 N2 o
a:1,) d7 b. L8 E0 j9 ?& ~( T
} # S) w j) ]- _% K" ?
const obj2 = {) s5 b8 J( P9 ^; e
b:1, 3 E" Q9 B8 r. f7 o1 o
} 7 K2 J# @+ c3 e$ {( t0 {
const obj = Object.assign({}, obj1, obj2);//{a:1,b:1}吐槽ES6的扩展运算符是不是忘记了,还有数组的合并不考虑去重吗?改进const a = [1,2,3];" D+ |; J( }8 R! T9 g* c7 m
const b = [1,5,6]; * y7 c) i- R+ R1 m7 M E! J E
const c = [...new Set([...a,...b])];//[1,2,3,5,6] $ z$ F+ ^, d" R
const obj1 = { . M, K) m2 `- y' @
a:1, 5 @1 m% u7 ?! W( Z! |) Y
}. Z D5 w8 c" j/ V, Q& w& K
const obj2 = { . ~ \! E0 m; i. k& o$ x
b:1, }7 }2 P6 c2 o2 Y& b
}$ ~: q6 g3 o* C, W9 F# s
const obj = {...obj1,...obj2};//{a:1,b:1}
复制代码
0 m3 F% g2 e8 P$ g! d
三、关于拼接字符串的吐槽 * M0 p/ r) \, ], H1 @% ~, n
const name = '小明'; 2 L) Z( V( w% h7 c! V/ G N
const score = 59; |+ X% w+ N4 `# ], N# O: u
let result = ''; , z' ^; `- j% C/ L T" g# Q
if(score > 60){ ; E- j; H0 o$ f* O5 I
result = `${name}的考试成绩及格`; 0 n$ @+ \; F; r1 I( F V7 _4 G6 r
}else{ ' {' m2 Y" h+ G# H
result = `${name}的考试成绩不及格`; ? _0 T* x- b% J, _& E; v
}
复制代码
7 V# {. T% u4 X
4 c% g9 q3 M, y; E2 b* F. o8 T. X3 F
吐槽像你们这样用ES6字符串模板,还不如不用,你们根本不清楚在${}中可以做什么操作。在${}中可以放入任意的JavaScript表达式,可以进行运算,以及引用对象属性。改进const name = '小明'; % z9 R1 s# x1 G8 s7 J8 G3 b) G1 \
const score = 59; + t Z" c: h3 S+ P. h& \$ F" X$ B
const result = `${name}${score > 60?'的考试成绩及格':'的考试成绩不及格'}`;
复制代码
/ K2 |) p$ y4 e& e6 ]8 D8 P) D
四、关于if中判断条件的吐槽if( 6 i: O" i6 @7 i( x( a