ES6 变量的解构赋值
作用:将对象/数组中的值,同时赋值给多个变量
语法:
解构对象: let{属性名,..}=对象; 需要什么属性写什么属性,解构后属性名即作为变量使用
let {属性名:新名称,....}=对象,会将解构的结果重新赋值给新名称,且不能使用之前的属性名
解构数组: let[变量名,变量名,..]=数组; 根据下标赋值
let[,,a,b]=数组,表示a、b取数组中第三个第四个
解构+剩余操作符:let {b,...c}={a:1,b:2,c:3}
变量c的结果为之前解构后剩余的内容,即{a:1,c:3}
解构赋值之后重命名再解构赋值:
let {params:{businessId}}=obj;
将params重命名并从中解构出businessId,因为重命名了,所以只有businessId能够被使用
解构并设置默认值
const { transform = true } = props
解构赋值交换变量值,不需要再声明一个temp变量进行转换
let arr=[0,1,2,3];
let a=2;
let b=1;
[b,a]=[a,b];
[arr[0],arr[1]]=[arr[1],arr[0]]
在函数中用法:function 函数名({属性名,属性名,...}){
//因为函数形参会省略let关键字
//故形参传入对象,即相当于解构对象,声明了对应的变量,可直接使用,而不需要.操作
console.log(属性名/变量名...)
}
函数名(obj对象)
代码示例:
<html ng-app='app' ng-controller='main' >
<head>
<meta charset="utf-8">
<meta name='viewport' content='width=device-width,user-scalable=no,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0'>
<script src='jq/jquery-3.4.1.js'></script>
<style>
</style>
</head>
<body >
<script>
let obj={name:'jeff',age:18};
let {name,age}=obj;
console.log(name,age);
let arr=[1,2,3,true];
let [a,b,c]=arr;
let [,,,d]=arr;
console.log(a,b,c);
console.log(d);
function f({name,age})
{
console.log(name,age);
}
f(obj);
</script>
</body>
</html>