验证中...
Languages: JavaScript
Categories: JavaScript 工具
Latest update 2019-06-12 22:59
解构赋值
Raw Copy
/*
结构赋值的分类
1、数组解构赋值
2、对象解构赋值
3、字符串解构赋值
4、布尔值结构赋值
5、函数参数解构赋值
6、数值解构赋值
*/
//1、数组解构赋值
{
let a,b,rest;
[a,b]=[1,2];//数组类型的结构赋值
console.log(a,b)
}
{
let a,b,rest;
[a,b,...rest]=[1,2,3,4,5,6]
console.log(a,b,rest)
}
{
let a,b;
({a,b}={a:1,b:2})//对象解构赋值
console.log(a,b)
}
{
let a,b,c,rest;
[a,b,c=3]=[1,2]; //添加默认值
console.log(a,b,c)
}
{
let a=1;
let b=2;
[a,b]=[b,a]; //适用于 变量交换
console.log(a,b)//输出结果为 2,1
}
{
function f(){
return [1,2]
}
let a,b;
[a,b]=f();
console.log(a,b) //打印结果为 1,2
}
{
function f(){
return [1,2,3,4,5]
}
let a,b,c;
[a,,,b] = f()
console.log(a,b) //只取想要的数据
}
{
function f(){
return [1,2,3,4,5]
}
let a,b,c; // 和上一种可以混合使用
[a,,...b] = f()//如果不知道数组返回的长度是多少
console.log(a,b) //只取数组的第一个值其他的赋值给数组
}
//2、对象解构赋值
{
let o={p:42,q:true};
let {p,q}=o;
console.log(p,q)//打印结果 42,true
}
{
let{a=10,b=5}={a:3}; //a重新赋值为3 ,b没有重新赋值所以还是5
console.log(a,b) //打印结果为3,5
}
{
let metaData = {
title:'abc',
test:[{
title:'test',
desc:'descroption'
}]
}
let {title:esTitle,test:[{title:cnTitle}]} = metaData;
console.log(esTitle,cnTitle) //打印结果为 abc test
}

Comment list( 0 )

You need to Sign in for post a comment

Help Search

Gitee_you_jiang_zheng_wen Zheng_wen_close