ES6的解构赋值实例详解

 更新时间:2019年05月06日 09:02:54   作者:Mr-Nobody  
解构赋值允许你使用类似数组或对象字面量的语法将数组和对象的属性赋给各种变量。这篇文章主要介绍了ES6的解构赋值的实例代码 ,需要的朋友可以参考下

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 中的 parseInt() 函数详解

    JavaScript 中的 parseInt() 函数详解

    parseInt函数将其第一个参数转换为一个字符串,对该字符串进行解析,然后返回一个整数或 NaN,这篇文章主要介绍了JavaScript 的 parseInt() 函数,需要的朋友可以参考下
    2023-05-05
  • 随机生成10个不重复的0-100的数字(实例讲解)

    随机生成10个不重复的0-100的数字(实例讲解)

    下面小编就为大家带来一篇随机生成10个不重复的0-100的数字(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • js实现具有高亮显示效果的多级菜单代码

    js实现具有高亮显示效果的多级菜单代码

    这篇文章主要介绍了js实现具有高亮显示效果的多级菜单,涉及javascript针对cookie的调用及页面元素样式的动态变换技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • javascript实现动态表头及表列的展现方法

    javascript实现动态表头及表列的展现方法

    这篇文章主要介绍了javascript实现动态表头及表列的展现方法,涉及javascript动态操作table元素的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • webpack DefinePlugin源码入口解析

    webpack DefinePlugin源码入口解析

    这篇文章主要为大家介绍了webpack DefinePlugin源码入口解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • 微信小程序图片选择区域裁剪实现方法

    微信小程序图片选择区域裁剪实现方法

    本篇文章主要介绍了微信小程序图片选择区域屏裁剪实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • JavaScript中的原型和继承详解(图文)

    JavaScript中的原型和继承详解(图文)

    到现在,我们就有讨论 JavaScript 中的原型和继承问题的基础了。它虽然并不像你在 C++、Java 或 C# 中了解的经典继承模式一样,但这种方式同样强大,并且有可能会更加灵活
    2014-07-07
  • JS实现滑动插件

    JS实现滑动插件

    这篇文章主要为大家详细介绍了JS实现滑动插件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-01-01
  • js unicode 编码解析关于数据转换为中文的两种方法

    js unicode 编码解析关于数据转换为中文的两种方法

    这篇文章主要介绍了js unicode 编码解析关于数据转换为中文的两种方法,需要的朋友可以参考下
    2014-04-04
  • Html中 IFrame的用法及注意点

    Html中 IFrame的用法及注意点

    这篇文章主要介绍了Html IFrame的用法及注意点,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-12-12

最新评论