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 相关文章推荐
jquery text,radio,checkbox,select操作实现代码
Jul 09 Javascript
Kibo 用于处理键盘事件的Javascript工具库
Oct 28 Javascript
PHP+jQuery实现随意拖动层并即时保存拖动位置
Apr 30 Javascript
JavaScript实现的类字典插入或更新方法实例
Jul 10 Javascript
JS实现淘宝支付宝网站的控制台菜单效果
Sep 28 Javascript
jQuery 3.0十大新特性最终版发布
Jul 14 Javascript
使用JSON作为函数的参数的优缺点
Oct 27 Javascript
微信小程序 支付功能实现PHP实例详解
May 12 Javascript
浅谈Vue.js 1.x 和 2.x 实例的生命周期
Jul 25 Javascript
Vue中的scoped实现原理及穿透方法
May 15 Javascript
JavaScript数组特性与实践应用深入详解
Dec 30 Javascript
Node.js net模块功能及事件监听用法分析
Jan 05 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获取文件夹路径内的图片以及分页显示示例
2014/03/11 PHP
php实现的发送带附件邮件类实例
2014/09/22 PHP
php支付宝接口用法分析
2015/01/04 PHP
apycom出品的jQuery精美菜单破解方法
2011/02/18 Javascript
微信小程序自定义tab实现多层tab嵌套功能
2018/06/15 Javascript
微信小程序项目实践之九宫格实现及item跳转功能
2018/07/19 Javascript
当vue路由变化时,改变导航栏的样式方法
2018/08/22 Javascript
jquery实现的放大镜效果示例
2020/02/24 jQuery
JS深入学习之数组对象排序操作示例
2020/05/01 Javascript
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
2020/12/04 Vue.js
python实现决策树C4.5算法详解(在ID3基础上改进)
2017/05/31 Python
Python实现七彩蟒蛇绘制实例代码
2018/01/16 Python
Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
2018/02/21 Python
Python 统计字数的思路详解
2018/05/08 Python
idea创建springMVC框架和配置小文件的教程图解
2018/09/18 Python
PyCharm代码回滚,恢复历史版本的解决方法
2018/10/22 Python
不到40行代码用Python实现一个简单的推荐系统
2019/05/10 Python
python调用并链接MATLAB脚本详解
2019/07/05 Python
使用Python实现NBA球员数据查询小程序功能
2020/11/09 Python
div或img图片高度随宽度自适应的方法
2020/02/06 HTML / CSS
荷兰街头时尚之家:Funkie House
2019/03/18 全球购物
GafasWorld西班牙:购买太阳镜、眼镜和隐形眼镜
2019/09/08 全球购物
英语专业毕业生求职简历的自我评价
2013/10/24 职场文书
继电保护工岗位职责
2014/01/05 职场文书
座谈会主持词
2014/03/20 职场文书
法人代表委托书
2014/04/04 职场文书
《沙漠中的绿洲》教学反思
2014/04/24 职场文书
财务人员担保书
2014/05/13 职场文书
关于孝道的演讲稿
2014/05/21 职场文书
雨花台导游词
2015/02/06 职场文书
获奖感言一句话
2015/07/31 职场文书
2019年亲子运动会口号
2019/10/11 职场文书
七年级作文之我的梦想
2019/10/16 职场文书
Python爬虫入门案例之爬取去哪儿旅游景点攻略以及可视化分析
2021/10/16 Python
详细聊聊浏览器是如何看闭包的
2021/11/11 Javascript
python实现会员管理系统
2022/03/18 Python