ES6的解构赋值实例详解


Posted in Javascript onMay 06, 2019

1 什么是解构赋值

解构赋值允许你使用类似数组或对象字面量的语法将数组和对象的属性赋给各种变量。这种赋值语法极度简洁,同时还比传统的属性访问方法更为清晰。解构会仅提取出一个大对象中的部分成员来单独使用。

如下是传统的:

var y=data[0]
var m=data[1]
var d=data[2]

但在ES6中可以简写为:

var [y,m,d]=date;

2 数组与对象的解构

数组解构赋值语法的一般形式为:

 [ variable1, variable2, ..., variableN ] = array;

这将为variable1到variableN的变量赋予数组中相应元素项的值。如果你想在赋值的同时声明变量,可在赋值语句前加入var、let或const关键字

对象的解构类似,如下所示:

var user={
  uid:1001,
  uname:"dingding",
  set:1,
  signin:function(){
   console.log("登录...");
  },
  signout:function(){
   console.log("注销...");
  },
  signup:function(){
   console.log("注册...");
  }
}
//var {uid:uid,signup:signup}=user;//简写如下
var {uid,signup}=user;
console.log(uid);
signup();

对象解构的一个特殊用法是参数结构,在向函数中传参时,将一个大的对象,打散后,传递给对应的形参变量,有效解决了传参时有多个形参不确定但又要求按顺序传入的需求

//1. 定义形参列表时,就用对象结构定义
function ajax({
 //与顺序无关
 url,
 type,
 data,//不确定
 dataType,//不确定
}){
   console.log(`向${url}发送${type}请求`);
   if(data!=undefined&&type=="get"){
    console.log(`在url结尾拼接参数?${data}`)
   }
   if(data!=undefined&&type=="post"){
    console.log(`xhr.send(${data})`);
   }
   if(dataType=="json"){
    console.log(`JSON.parse(返回结果)`);
   }
}
//2. 调用函数传参时,所有实参值,都要放在一个对象结构中整体传入。
ajax({
  url:"http://localhost:3000/products/getProductsByKwords",
  type:"get",
  data:"kw=macbook i5",
  dataType:"json"
});

使用解构很方便,但它强调对应关系,数组解构:下标对下标,对象解构:属性对属性,但允许元素或者参数为空,例如下面三种写法:

var [y,,]=date;
var [y,,d]=date;
var [,m,]=date;

虽然有不同位置的元素为空,但是依然可以正常执行赋值操作,不过和传统方法一样,为空的在用时会按undefined处理。

总结

以上所述是小编给大家介绍的ES6的解构赋值,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
关于ExtJS4.1:快捷键支持的问题
Apr 24 Javascript
jquery利用命名空间移除绑定事件的方法
Mar 11 Javascript
Jquery中基本选择器用法实例详解
May 18 Javascript
JavaScript中实现无缝滚动、分享到侧边栏实例代码
Apr 06 Javascript
JS组件Bootstrap导航条使用方法详解
Apr 29 Javascript
详解js实现线段交点的三种算法
Aug 09 Javascript
第一次动手实现bootstrap table分页效果
Sep 22 Javascript
详解JSONObject和JSONArray区别及基本用法
Oct 25 Javascript
js断点调试经验分享
Dec 08 Javascript
vue-lazyload图片延迟加载插件的实例讲解
Feb 09 Javascript
详解Webpack多环境代码打包的方法
Aug 03 Javascript
Vue-Cli项目优化操作的实现
Oct 27 Javascript
3分钟读懂移动端rem使用方法(推荐)
May 06 #Javascript
Vue动态组件和异步组件原理详解
May 06 #Javascript
微信小程序按钮点击跳转页面详解
May 06 #Javascript
详解vue中移动端自适应方案
May 05 #Javascript
解决ie11 SCRIPT5011:不能执行已释放Script的代码问题
May 05 #Javascript
彻底揭秘keep-alive原理(小结)
May 05 #Javascript
angular4+百分比进度显示插件用法示例
May 05 #Javascript
You might like
再推荐十款免费的php开发工具
2015/11/09 PHP
PHP设计模式之迭代器模式
2016/06/17 PHP
什么是PHP7中的孤儿进程与僵尸进程
2019/04/14 PHP
Package.js  现代化的JavaScript项目make工具
2012/05/23 Javascript
jquery教程限制文本框只能输入数字和小数点示例分享
2014/01/13 Javascript
jQuery通过点击行来删除HTML表格行的实现示例
2014/09/10 Javascript
浅谈js中变量初始化
2015/02/03 Javascript
JavaScript 事件绑定及深入
2015/04/13 Javascript
pace.js页面加载进度条插件
2015/09/29 Javascript
jQuery实现导航滚动到指定内容效果完整实例【附demo源码下载】
2016/09/20 Javascript
微信小程序promsie.all和promise顺序执行
2017/10/27 Javascript
vue中简单弹框dialog的实现方法
2018/02/26 Javascript
vue实现学生录入系统之添加删除功能
2018/07/11 Javascript
解决Layui 表单提交数据为空的问题
2018/08/15 Javascript
vue项目实现表单登录页保存账号和密码到cookie功能
2018/08/31 Javascript
vue动画之点击按钮往上渐渐显示出来的实例
2018/09/29 Javascript
React降级配置及Ant Design配置详解
2018/12/27 Javascript
js判断一个对象是数组(函数)的方法实例
2019/12/19 Javascript
python中实现字符串翻转的方法
2018/07/11 Python
5款Python程序员高频使用开发工具推荐
2019/04/10 Python
python实现集中式的病毒扫描功能详解
2019/07/09 Python
python+selenium select下拉选择框定位处理方法
2019/08/24 Python
Python利用PyExecJS库执行JS函数的案例分析
2019/12/18 Python
canvas实现漂亮的下雨效果的示例
2018/04/18 HTML / CSS
阿迪达斯丹麦官网:adidas丹麦
2016/10/01 全球购物
新西兰最大、占有率最高的综合性药房:PharmacyDirect药房中文网
2020/11/03 全球购物
乡镇干部先进事迹材料
2014/02/03 职场文书
大队委竞选演讲稿
2014/04/28 职场文书
高一新生军训方案
2014/05/12 职场文书
国际贸易毕业生自荐书
2014/06/22 职场文书
食堂厨师岗位职责
2014/08/25 职场文书
胡雪岩故居导游词
2015/02/06 职场文书
2015年消费者权益日活动总结
2015/02/09 职场文书
计划生育个人总结
2015/03/02 职场文书
幼儿园教师辞职信
2019/06/21 职场文书
一小时迅速入门Mybatis之bind与多数据源支持 Java API
2021/09/15 Javascript