数组和对象的结构

数组的结构

单行结构

 let [name,age,sex]=['Mr.Lee',100,'男'];

双行结构

let info=['Mr.Lee',100,'男'];  //数组赋值
let [name,age,sex]=info;   //数组结构赋值

数组层次需要匹配

let [name,[age,sex]]=['Mr.Lee',[100,'男']];
用逗号做为占位符 不赋值
let [,,sex]=['Mr.Lee',100,'男'];
...var语法,将没有赋值的内容都赋值给这个变量
 let [name, ...other]=['Mr.Lee',100,'男'];

对象的结构

 1 let obj={
 2     name:'Mr.Lee',
 3     age:100
 4 };
 5 let {name,age}=obj; 或  ({name,age}=obj);
 6 
 7 let obj={
 8     name:'Mr.Lee',
 9     age:100
10 },name='Mr.Wang';   //被替代
11 ({name,age}=obj); //用()不用get的原因,避免临时性死区
对变量结构设置一个默认值  没有赋值时输出默认值
let obj={...}
let {name,age,sex='女'}=obj;
通过赋值的方式更改变量名
let {name:myname,age:myage}=obj;  //name将失效
console.log(myname);
console.log(myage);
在对象字面量里,嵌套了对象 结构时也用相同的方法
 1 let obj={
 2     name:'Mr.Lee',
 3     age:100,
 4     info:{
 5         id:1,
 6         sex:'男'
 7     }
 8 };
 9 let {info:{id,sex}}=obj;
10 console.log(id);
11 console.log(sex);

简写模式

let {name,age}={name:'Mr.Lee',age:100};

常用的结构

如果函数的返回值是一个数组或对象,直接将函数进行赋值结构  
function fn(){
    return ['Mr.Lee',100,'男'];
}
let [name,age,sex] = fn();
console.log(name);

function fn2(){
    return{
        name:'Mr.Lee',
        age:100,
        sex:'男' 
    };
}
let [name,age,sex] = fn2(); //返回的是对象
console.log(name);
当函数进行传参的时候,可以进行数组和对象字面量方式的传参;
1 function fn([name,age,sex]){
2     console.log(name);
3 }
4 fn(['Mr.Lee',100,'男']);
5 function fn2([name,age,sex]){
6     console.log(name);
7 }
// 除了对象和数组可以使用结构,字符串类型已可以使用结构
1 let[x,y,z]='ABC';
2 console.log(x);   //A
3 
4 let{length:len}='ABC';  //长度
5 console.log(len);  //输出3

 

 

上一篇:防SQL注入代码(ASP版)


下一篇:D. Not Quite Lee(Codeforces Global Round 17)