ES6 数组解构赋值

news/2024/7/5 23:09:28
1.数组解构
let [a, b, c,d] = ["aa", "bb", 77,88]; 
alert(a) //弹出aa      可以用babel  解析看ES5的转换结果
嵌套数组解构 
let [a,b,[c,d],e] =["aa",'bb',[33,44],55]; 
alert(c) //弹出33 
空缺变量 
let [a,b,,e] =["aa",'bb',[33,44],55]; 
//缺省可以以空格代替但是不能去掉占位的,
多余变量 
let [a,b,,e,f] =["aa",'bb',[33,44],55]; 
alert(f); //弹出undefined 与变量f没有对应值,所以映射不过去
默认值 
let [a,b,,e,f='hello'] =["aa",'bb',[33,44],55]; 
alert(f) //弹出给的默认值  

但是 下面这种有值的情况给默认值是会被忽略的
let [a,b,,e,f='hello'] =["aa",'bb',[33,44],55,66]; 
alert(f) //弹出给的66
 2.对象解构 
// let obj={uid:121,uname:'张三'};  //对象写法一
let obj=new Object(); //对象写法二
  obj.uid=111; 
  obj.uname='张三'; 
  let {uid:id,uname:name}=obj; //顺序改变无影响 
alert(name);  //弹出张三  这个也是创建一个变量,然后去映射出它的值
小括号
let obj={uid:121,uname:'张三'};  
    let uid,uname; 
    ({uid,uname} = obj); //必须有小括号,否则{}就会被解读为语句块 
alert(uname);; 
3.字符串解构
let[a, b, c, d] ="倚天屠龙"; 

console.log(a); //弹出 倚
4.函数参数解构 
let obj=new Object(); 
    obj.uid=111; 
    obj.uname='张三'; 
function analysis({uid,uname}){ 
    alert(uid); 
    alert(uname); 
} 
analysis(obj); //把刚开始定义obj对象传进去,然后里面会自动分配好你对象的值,你只需在传参数(形参)的时候注意对象的个数(实参)即可

 说的通俗一点就是 映射 将映射的值给拿出来用

转载于:https://www.cnblogs.com/Model-Zachary/p/6130798.html


http://www.niftyadmin.cn/n/1941908.html

相关文章

第二个议题

① 在每个问题后面,请说明哪一章节的什么内容引起了你的提问,提供一些上下文 ② 列出一些事例或资料,支持你的提问 。 ③ 说说你提问题的原因,你说因为自己的假设和书中的不同而提问,还是不懂书中的术语,还…

山东省高中学业水平考试计算机考试教材,2017年山东高中学业水平考试科目

考试科目(1)会考的文化科目为:语文、数学、外语、思想政治、物理、化学、历史、地理、生物、信息技术、通用技术,共计11科;实践科目为:物理、化学、通用技术、生物的实验操作。文化科目的会考方式分为考试、考查两种,采…

Kafka入门, 消费者组案例(十九)

pom 文件 <dependencies><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>3.0.0</version></dependency></dependencies>独立消费者案例&#xff08;订阅主语&a…

(十四)模块(Module)的补充、Mix-in

&#xff08;1&#xff09;Module和Class的关系、Module和Namespace的关系&#xff0c;Devise #查看一个类的父类,第二个说明类继承自模块&#xff08;模块是类的父类&#xff09;puts String.superclass,Class.superclass,Module.superclass #ruby没有命名空间的概念&#xf…

Struts2的拦截器是如何使用AOP工作的

拦截器&#xff08;interceptor&#xff09;是Struts2最强大的特性之一&#xff0c;也可以说是struts2的核心&#xff0c;拦截器可以让你在Action和result被执行之前或之后进行一些处理。同时&#xff0c;拦截器也可以让你将通用的代码模块化并作为可重用的类。Struts2中的很多…

bzoj 2588: Spoj 10628. Count on a tree

DFS序在树上建出主席树&#xff0c;然后。。。。。 1 #include<cstdio>2 #include<iostream>3 #include<cstring>4 #include<cstdlib>5 #include<cmath>6 #include<algorithm>7 #define ll long long8 #define M 2000099 using namespace …

noi题库(noi.openjudge.cn) 1.7编程基础之字符串T21——T30

T21&#xff1a;单词替换 描述 输入一个字符串&#xff0c;以回车结束&#xff08;字符串长度<100&#xff09;。该字符串由若干个单词组成&#xff0c;单词之间用一个空格隔开&#xff0c;所有单词区分大小写。现需要将其中的某个单词替换成另一个单词&#xff0c;并输出替…

功能全面超实用Android下(上)拉刷新库

下拉刷新、上拉加载更多几乎是每个app的必用功能&#xff0c;LightRefresh提供了上拉和下拉功能&#xff0c;主要亮点是自动回弹功能&#xff0c;还支持自定义界面&#xff0c;功能可谓强大。 可以不要刷新头&#xff08;支持拉动回弹效果&#xff0c;类似于qq的下拉刷新&#…