JavaScript中 ES6变量的结构赋值


Posted in Javascript onJuly 10, 2018

变量的结构赋值用户很多

1、交换变量的值

let x = 1;
let y = 2;
[x,y] = [y,x]

上面的代码交换变量x和变量y的值,这样的写法不仅简洁,易读,语义非常清晰

2、从函数返回多个值

函数只能返回一个值,如果要返回多个值,只能讲他们放在数组或者对象里返回。了解 解构赋值 ,取值这些值非常方便

//返回一个数组
function example(){
  return [1,2,3];
}
let [a,b,c] = example();
[a,b,c];  //[1,2,3]
//返回一个对象
function example(){
  return {
    foo:1,
    bar:2
  };
}
let {foo,bar} = example();
foo;  //1
bar;  //2

3、函数参数的定义

解构赋值可以方便的讲一组参数与变量名对应起来。

//参数是一组有次序的值
function f([x,y,z]){
  console.log(x,y,z);
}
f([1,2,3]); //1,2,3
//参数是一组无次序的值
function func({x,y,z}){
  console.log(x,y,z);
}
func({z:3,y:2,x:1}); //1,2,3

4、提取JSON数据

解构赋值对提取JSON对象中的数据尤其有用

let jsonData = {
  id:42,
  status:"OK",
  data:[123,456]       
} ;
let {id,status,data:number} = jsonData;
console.log(id,status,number);  //42 "OK" (2) [123, 456]

5、函数参数的默认值

、、、

6、遍历Map结构

任何部署了Iterator接口的对象都可以使用for... of循环遍历。Map结构原生支持Iterator接口,配合变量的解构赋值获取名和键值就非常方便。

var map = new Map();
map.set('first','hello');
map.set('second','world');

for(let [key,value] of map){
  console.log(key,value);
}

//first hello
//second world

如果只想获取键名,或者只想获取键值,可以这样写。

//获取键名
for(let [key] of map){
  console.log(key);
}

//first
//second
//获取键值
for(let [,value] of map){
  console.log(value);
}
//hello
//world

7、输入模块的指定方法

加载模块时,往往需要指定输入的方法。解构赋值使得输入语句非常清晰。

const {a,b} = require('source-map');

总结

以上所述是小编给大家介绍的JavaScript中 ES6变量的结构赋值,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
在js中使用"with"语句中跨frame的变量引用问题
Mar 08 Javascript
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
Apr 14 Javascript
javascript循环变量注册dom事件 之强大的闭包
Sep 08 Javascript
手机开发必备技巧:javascript及CSS功能代码分享
May 25 Javascript
简介JavaScript中的unshift()方法的使用
Jun 09 Javascript
AngularJS的一些基本样式初窥
Jul 27 Javascript
基于jQuery通过jQuery.form.js插件实现异步上传
Dec 13 Javascript
EasyUI在表单提交之前进行验证的实例代码
Jun 24 Javascript
JQuery实现DIV其他动画效果的简单实例
Sep 18 Javascript
Jquery把获取到的input值转换成json
May 15 jQuery
jQuery事件多次绑定与解绑问题实例分析
Feb 19 jQuery
Vue 实现点击空白处隐藏某节点的三种方式(指令、普通、遮罩)
Oct 23 Javascript
vue超时计算的组件实例代码
Jul 09 #Javascript
微信小程序自定义底部弹出框
Nov 16 #Javascript
详解vue中组件参数
Jul 09 #Javascript
微信小程序实现手指触摸画板
Jul 09 #Javascript
微信小程序canvas实现刮刮乐效果
Jul 09 #Javascript
vue用Object.defineProperty手写一个简单的双向绑定的示例
Jul 09 #Javascript
js中Object.defineProperty()方法的不详解
Jul 09 #Javascript
You might like
php通过分类列表产生分类树数组的方法
2015/04/20 PHP
PHP错误Warning:mysql_query()解决方法
2015/10/24 PHP
php gd等比例缩放压缩图片函数
2016/06/12 PHP
JQUERY获取form表单值的代码
2010/07/17 Javascript
不使用中间变量,交换int型的 a, b两个变量的值。
2010/10/29 Javascript
javascript学习笔记(八) js内置对象
2012/06/19 Javascript
日历查询的算法 如何计算某一天是星期几
2012/12/12 Javascript
JS中typeof与instanceof之间的区别总结
2013/11/14 Javascript
jQuery CSS3相结合实现时钟插件
2016/01/08 Javascript
浅谈js图片前端预览之filereader和window.URL.createObjectURL
2016/06/30 Javascript
js实现开启密码大写提示
2016/12/21 Javascript
利用jQuery实现滑动开关按钮效果(附demo源码下载)
2017/02/07 Javascript
详解如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件
2017/06/01 jQuery
Angular 表单控件示例代码
2017/06/26 Javascript
Nodejs之TCP服务端与客户端聊天程序详解
2017/07/07 NodeJs
详谈javascript精度问题与调整
2017/07/08 Javascript
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
2017/09/20 jQuery
JS 仿支付宝input文本输入框放大组件的实例
2017/11/14 Javascript
微信小程序如何获取用户信息
2018/01/26 Javascript
axios全局请求参数设置,请求及返回拦截器的方法
2018/03/05 Javascript
详解小程序不同页面之间通讯的解决方案
2018/11/23 Javascript
vue router总结 $router和$route及router与 router与route区别
2019/07/05 Javascript
在vue中阻止浏览器后退的实例
2019/11/06 Javascript
JS控制只能输入数字并且最多允许小数点两位
2019/11/24 Javascript
详解Typescript 内置的模块导入兼容方式
2020/05/31 Javascript
解决vue bus.$emit触发第一次$on监听不到问题
2020/07/28 Javascript
微信小程序通过websocket实时语音识别的实现代码
2020/08/19 Javascript
[41:41]TFT vs Secret Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
详解在Python和IPython中使用Docker
2015/04/28 Python
Centos Python2 升级到Python3的简单实现
2016/06/21 Python
Django使用httpresponse返回用户头像实例代码
2018/01/26 Python
CSS3实现彩色进度条动画的示例
2020/10/29 HTML / CSS
外语系毕业生求职自荐信
2014/04/12 职场文书
商务宴会祝酒词
2015/08/11 职场文书
为什么MySQL 删除表数据 磁盘空间还一直被占用
2021/10/16 MySQL
python标准库ElementTree处理xml
2022/05/20 Python