解构赋值的基本用法
数组解构
let [a,b,c] = [1,2,3]
console.log(a) //1
console.log(b) //2
console.log(c) //3
let [d,[e],f] = [1,[2],3] // 嵌套数组解构 d=1, e=2, f=3
let [g, ...h] = [1,2,4]// 数组拆分 g=1, h = [2,3]
let [i,,j] = [1,2,3] // i=1,j=3
let [k,l] = [1,2,3] //不完全解构 k=1, l=2
对象解构
let {a,b} = {a: 'aaa',b: 'bbb'}
let obj = {d: 'aaa', e: {f: 'bbbb'}}
let {d, e:{f}} = obj;
let {g} = {g: 'ff'};
let [h,i,j,k] = 'nice'
请注意:对象解构赋值的时候,变量名和对象属性名也要一一对应。
解构赋值,在开发中常用语简化代码,
变量赋值
如:
const {userName, password} = {userName: 'user', password: 123456}
const [userName,password] = ['user',123456]
函数参数传值
function personInfo(name, age, address, gender) {
console.log(name, age, address, gender)
}
personInfo('william', 18, 'changsha', 'man')
以上,调用时需一一对应参数,否则会报错, 使用解构赋值则灵活地多。
function personInfo({name,age,address,gender}){
console.log(name,age,address,gender)
}
personInfo({gender: 'man', address: 'shanghai', name: 'YY', age:11})
交换变量的值
let a =1, b =9;
[a,b] = [b,a]
函数的默认参数
function saveInfo(name, age, address, gender) {
name = name || 'william'
age = age || 18
address = address || 'changsha'
gender = gender || 'man'
console.log(name, age, address, gender)
}
saveInfo()
当然上述也可以写成
function saveInfo(name="YY",age=17,address='shanghai'){
console.log(name,age,address);
}
写法上是简单点,但是还是没解决 函数参数传值说的问题。所有还是用解构赋值来解决吧