let [a]='abcdefg';
let [b,...other]='abcdefg';
console.log(a);//consle log :a
console.log(b);//consle log :a
console.log(other);//consle log :b,c,d,e,f,g
利用es6的结构赋值特性,字符串当做数组,所以可以直接用数组解构取字符串的首位。第二,第三可以分别在数组中罗列。
let [a,b,c] = '123456';
console.log(`index0:${a} , index1:${b} , index2:${c}`);
//index0:1 , index1:2 , index3:3
活用js的结构赋值能解决很多赋值及临时取值的问题,在实际编码过程中非常有用。
附上一些常用的解构赋值用法:
对象解构
形式:const { x, y } = { x: 1, y: 2 }
console.log(x); //1
console.log(y); //2
数组解构
规则:利用数组的索引解构赋值,不需要同名
形式:const [x, y] = [1, 2]
常用的小技巧:
交换变量值:[x, y] = [y, x]
返回函数多个值:const [x, y, z] = Func()
定义函数参数:Func([1, 2])
提取JSON数据:const { name, version } = packageJson
定义函数参数默认值:function Func({ x = 1, y = 2 } = {}) {}
遍历Map结构:for (let [k, v] of Map) {}