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 限制数字 js限制输入实现代码
Dec 04 Javascript
javascript判断是手机还是电脑访问网页的简单实例分享
Jun 03 Javascript
原生Ajax 和jQuery Ajax的区别示例分析
Dec 17 Javascript
全面解析Bootstrap中nav、collapse的使用方法
May 22 Javascript
javascript实现根据汉字获取简拼
Sep 25 Javascript
javascript淘宝主图放大镜功能
Oct 20 Javascript
Three.js获取鼠标点击的三维坐标示例代码
Mar 24 Javascript
JavaScript闭包的简单应用
Sep 01 Javascript
利用Node.js了解与测量HTTP所花费的时间详解
Sep 22 Javascript
解决Layui数据表格的宽高问题
Sep 28 Javascript
Vue实现数据请求拦截
Oct 23 Javascript
vue3使用vue-router的完整步骤记录
Jun 20 Vue.js
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
我的论坛源代码(八)
2006/10/09 PHP
Php Ctemplate引擎开发相关内容
2012/03/03 PHP
解析php取整的几种方式
2013/06/25 PHP
PHP对接微信公众平台消息接口开发流程教程
2014/03/25 PHP
ThinkPHP模板判断输出Present标签用法详解
2014/06/30 PHP
CodeIgniter记录错误日志的方法全面总结
2016/05/17 PHP
PHP Swoole异步读取、写入文件操作示例
2019/10/24 PHP
两个SUBMIT按钮,如何区分处理
2006/08/22 Javascript
ppk谈JavaScript style属性
2008/10/10 Javascript
使用JS画图之点、线、面
2015/01/12 Javascript
微信小程序 引用其他js文件实现代码
2017/02/22 Javascript
vue+iview写个弹框的示例代码
2017/12/05 Javascript
Angular angular-file-upload文件上传的示例代码
2018/08/23 Javascript
Vue 第三方字体图标引入 Font Awesome的方法
2018/09/28 Javascript
如何基于原生javaScript生成带图片的二维码
2019/11/21 Javascript
[01:39:42]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python实现批量下载文件
2015/05/17 Python
Anaconda下配置python+opencv+contribx的实例讲解
2018/08/06 Python
python利用wx实现界面按钮和按钮监听和字体改变的方法
2019/07/17 Python
PyQt5 QDockWidget控件应用详解
2020/08/12 Python
Windows下pycharm安装第三方库失败(通用解决方案)
2020/09/17 Python
Django中template for如何使用方法
2021/01/31 Python
详解HTML5 data-* 自定义属性
2018/01/24 HTML / CSS
MSC邮轮官方网站:加勒比海、地中海和世界各地的假期
2018/08/27 全球购物
Mountain Warehouse德国官网:英国户外零售商
2019/08/11 全球购物
亚马逊加拿大网站:Amazon.ca
2020/01/06 全球购物
下列程序在32位linux或unix中的结果是什么
2015/01/26 面试题
学生的自我鉴定范文
2013/10/24 职场文书
安全标准化实施方案
2014/02/20 职场文书
525心理活动总结
2014/07/04 职场文书
房屋所有权证明
2014/10/20 职场文书
王金山在党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
2015年班级元旦晚会活动总结
2014/11/28 职场文书
2015年质检工作总结
2015/05/04 职场文书
小学运动会开幕词
2016/03/04 职场文书
我收到了德劲DE1107
2022/04/05 无线电