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 相关文章推荐
JavaScript全局函数使用简单说明
Mar 11 Javascript
javascript实现json页面分页实例代码
Feb 20 Javascript
js数组中如何随机取出一个值
Jun 13 Javascript
一张Web前端的思维导图分享
Jul 03 Javascript
jquery+CSS3实现3D拖拽相册效果
Jul 18 Javascript
微信小程序 Button 组件详解及简单实例
Jan 10 Javascript
AngularJS学习第二篇 AngularJS依赖注入
Feb 13 Javascript
React.js中常用的ES6写法总结(推荐)
May 09 Javascript
Vue实现搜索 和新闻列表功能简单范例
Mar 16 Javascript
通过 JS 判断页面是否有滚动条的实现方法
Apr 05 Javascript
Vue中computed及watch区别实例解析
Aug 01 Javascript
JavaScript实现滚动加载更多
Dec 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-timeit估计php函数的执行时间
2015/09/06 PHP
PHP内核探索之解释器的执行过程
2015/12/22 PHP
yii2 url重写并隐藏index.php方法
2018/12/10 PHP
PHP安装memcache扩展的步骤讲解
2019/02/14 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
索趣科技的答案
2007/02/07 Javascript
javascript实现跨域的方法汇总
2015/06/25 Javascript
jquery获取复选框的值的简单实例
2016/05/26 Javascript
JS完成画圆圈的小球
2017/03/07 Javascript
Vue.js学习笔记之常用模板语法详解
2017/07/25 Javascript
jQuery初级教程之网站品牌列表效果
2017/08/02 jQuery
微信小程序富文本渲染引擎的详解
2017/09/30 Javascript
vue生成token并保存到本地存储中
2018/07/17 Javascript
Vue实现用户自定义字段显示数据的方法
2018/08/28 Javascript
小程序中的箭头函数的具体使用
2020/06/19 Javascript
JavaScript中条件语句的优化技巧总结
2020/12/04 Javascript
python使用socket远程连接错误处理方法
2015/04/29 Python
Python OpenCV实现图片上输出中文
2018/01/22 Python
Python实现网页截图(PyQT5)过程解析
2019/08/12 Python
基于spring boot 日志(logback)报错的解决方式
2020/02/20 Python
在tensorflow以及keras安装目录查询操作(windows下)
2020/06/19 Python
HTML5验证以及日期显示的实现详解
2013/07/05 HTML / CSS
浅析HTML5 Landmark
2020/09/11 HTML / CSS
Hotels.com加拿大:领先的在线住宿网站
2018/10/05 全球购物
大学生学习生活的自我评价
2013/11/01 职场文书
毕业班联欢会主持词
2014/03/27 职场文书
小学生寒假家长评语
2014/04/16 职场文书
关于奉献的演讲稿
2014/05/21 职场文书
专题组织生活会方案
2014/06/15 职场文书
争做文明公民倡议书
2014/08/29 职场文书
检讨书1000字
2014/10/11 职场文书
二年级语文上册复习计划
2015/01/19 职场文书
教师个人教学总结
2015/02/11 职场文书
幼儿园小班个人工作总结
2015/02/12 职场文书
送给客户微信问候语!
2019/07/04 职场文书
【海涛解说】暗牧也疯狂,牛蛙成配角
2022/04/01 DOTA