数组解构
let [a, b, c] = [1, 2, 3] //a=l, b=2, c=3
let [d, [e], f] = [1, [2], 3] //嵌套数组解构 d=l, e=2, f=3
let [g, …h] = [1, 2, 3] 〃数组拆分 g=l, h=[2, 3]
let [i,, j] = [1, 2, 3] 〃不连续解构 i=l, j=3
let [k.l] = [1, 2, 3] 〃不完全解构 k=l, 1=2
对象解构
let {a, b} = {a: ‘aaaa’, b: ‘bbbb’} //a=’aaaa’ b=’bbbb’
let obj = {d: ‘aaaa’, e: {f: ‘bbbb’}}
let {d, e: {f}} = obj 〃嵌套解构 d=’aaaa’ f=’bbbb’
let g;
(g = {g: ‘aaaa’}) 〃以声明变量解构討aaaa’
let [h, i, j, k] = ‘nice’ 〃字符串解构 h=’n’ i=’i’ j=’c’ k=’e’
函数参数的定义
一般我们在定义函数的时候,如果函数有多个参数时,在es5语法中函数调用时参数必须一一 对应,否则就会出现赋值错误的情况,来看一个例子:
function personinfo(name, age, address, gender) {
console. log(name, age, address, gender)
}
personinfo(‘william’, 18, ‘changsha’, ‘man’)
上面这个例子在对用户信息的时候需要传递四个参数,且需要一一对应,这样就会极易出现参
数顺序传错的情况,从而导致bug,接下来来看es6解构赋值是怎么解决这个问题的:
function personinfo({name, age, address, gender}) {
console. log(name, age, address, gender)
}
personinfo({gender: ‘man’, address: ‘changsha’, name: ‘william’, age: 18})
这么写我们只知道要传声明参数就行来,不需要知道参数的顺序也没关系
交换变量的值
在es5中我们需要交换两个变量的值需要借助临时变量的帮助,来看一个例子:
var a=l, b=2, c
c = a
a = b
b = c
console. log(a, b)
来看es6怎么实现:
let a=l, b=2;
[b, a] = [a, b]
console. log(a, b)
是不是比es5的写法更加方便呢
函数默认参数
在日常开发中,经常会有这种情况:函数的参数需要默认值,如果没有默认值在使用的时候就
会报错,来看es5中是怎么做的:
function saveInfo(name, age, address, gender) {
age = age || 18
address = address || ‘changsha’
gender = gender || ‘man’
console.log(name, age, address, gender)
}
saveinfo ()
在函数离main先对参数做一个默认值赋值,然后再使用避免使用的过程中报错,再来看es6 中的使用的方法:
function saveinfo({name= ‘william’, age= 18, address= ‘changsha’, gender= ‘man’} = {}) {
console. log(name, age, address, gender)
}
saveinfo ()
在函数定义的时候就定义了默认参数,这样就免了后面给参数赋值默认值的过程,是不是看起
来简单多了
Was this helpful?
0 / 0