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 相关文章推荐
利用Javascript判断操作系统的类型实现不同操作系统下的兼容性
Jan 29 Javascript
JAVASCRIPT函数作用域和提前声明 分享
Aug 22 Javascript
JS匀速运动演示示例代码
Nov 26 Javascript
Javascript动画的实现原理浅析
Mar 02 Javascript
js+html5实现可在手机上玩的拼图游戏
Jul 17 Javascript
Bootstrap自动适应PC、平板、手机的Bootstrap栅格系统
May 27 Javascript
JS简单实现表格排序功能示例
Dec 20 Javascript
js的三种继承方式详解
Jan 21 Javascript
Vue无限滑动周选择日期的组件的示例代码
Jul 18 Javascript
微信公众号平台接口开发 获取微信服务器IP地址方法解析
Aug 14 Javascript
详解element-ui级联菜单(城市三级联动菜单)和回显问题
Oct 02 Javascript
vue实现虚拟列表功能的代码
Jul 28 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
phpmyadmin导入(import)文件限制的解决办法
2009/12/11 PHP
用 Composer构建自己的 PHP 框架之基础准备
2014/10/30 PHP
php基于jquery的ajax技术传递json数据简单实例
2016/04/15 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
7个Javascript地图脚本整理
2009/10/20 Javascript
IE与FireFox中的childNodes区别
2011/10/20 Javascript
S2SH整合JQuery+Ajax实现登录验证功能实现代码
2013/01/30 Javascript
详解JavaScript中Date.UTC()方法的使用
2015/06/12 Javascript
javascript常用的方法分享
2015/07/01 Javascript
原生js实现百叶窗效果及原理介绍
2016/04/12 Javascript
jQuery实现的可编辑表格完整实例
2016/06/20 Javascript
js 简易版滚动条实例(适用于移动端H5开发)
2017/06/26 Javascript
Vue路由钩子之afterEach beforeEach的区别详解
2018/07/15 Javascript
Vue2(三)实现子菜单展开收缩,带动画效果实现方法
2019/04/28 Javascript
基于vue实现一个禅道主页拖拽效果
2019/05/27 Javascript
详解elementui之el-image-viewer(图片查看器)
2019/08/30 Javascript
[01:01:04]2018DOTA2亚洲邀请赛 4.5 淘汰赛 OpTic vs TNC 第一场
2018/04/06 DOTA
从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
2014/05/23 Python
python读取TXT每行,并存到LIST中的方法
2018/10/26 Python
python web自制框架之接受url传递过来的参数实例
2018/12/17 Python
Numpy数组array和矩阵matrix转换方法
2019/08/05 Python
django基于存储在前端的token用户认证解析
2019/08/06 Python
基于python的selenium两种文件上传操作实现详解
2019/09/19 Python
浅析PEP572: 海象运算符
2019/10/15 Python
手把手教你进行Python虚拟环境配置教程
2020/02/03 Python
Python+kivy BoxLayout布局示例代码详解
2020/12/28 Python
pandas map(),apply(),applymap()区别解析
2021/02/24 Python
法律专业自我鉴定
2013/10/03 职场文书
创业计划书如何编写
2014/02/06 职场文书
销售人才自我评价范文
2014/09/27 职场文书
工伤事故赔偿协议书
2014/10/27 职场文书
天下第一关导游词
2015/02/06 职场文书
食品仓管员岗位职责
2015/04/01 职场文书
如何书写公司员工保密协议?
2019/06/27 职场文书
100句拼搏进取的名言警句,值得一读!
2019/10/07 职场文书
2022新作动画《福星小子》释出宣传影片 加入内田真礼&宫野真守配音演出
2022/04/08 日漫