ES6知识点整理之对象解构赋值应用示例


Posted in Javascript onApril 17, 2019

本文实例讲述了ES6知识点整理之对象解构赋值应用。分享给大家供大家参考,具体如下:

ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring), 在对象的解构赋值中有一些需要注意的事项

初识对象的解构

var {name} = {
 name:'Joh',
 age:10
};
console.log(name); // Joh

通过解构的形式取出对象中的属性值

对解构出的属性进行重命名

var {name} = {
 name:'Joh',
 age:10
};
console.log(name); // Joh
// 通过{属性:新的名称} = 对象的方式 对解构出的属性进行重命名
var {color:color2} = {
 color:'red',
 age:10
};
console.log(color2); // red
console.log(color); // 此处报错:Uncaught ReferenceError: color is not defined

对象嵌套解构中模式和变量的区别

var obj = {
   a:{
    b:{
     c:123
    }
   }
};
let {a:{b:{c}}} = obj; // 针对嵌套解构的最终输出只能是最里层的,外层的a和b都作为解构中的一种模式存在,而不是变量,只有c能正常输出
console.log(c); // 123
console.log(a, b, c); // Uncaught ReferenceError: a is not defined 报错之后停止

解析对象的默认值

var obj = {
 name:'Joh',
 age:22
};
var {name, id='999', age} = obj;
console.log(name, id ,age); // Joh 999 22
var obj2 ={
 name:'Lily',
 age:10
};
var {name:name2, id:id2='888', age:age2} = obj2;
console.log(name2, id2, age2); // Lily 888 10

解构对象中可能出现的异常

① 父解构的节点为undefined,在编程中一定要注意这个,属于粗心错误 :

let {x:{y}} = {name:{y:12}};
// 父结构中没有x属性名, 错误:Cannot destructure property `y` of 'undefined' or 'null'.

② 事先定义了一个变量重名错误 :

let name;
let {name} = {name:'Joh'};
// Uncaught SyntaxError: Identifier 'name' has already been declared

解决方案1:

let name;
let {name:name2} = {name:'Joh'};
console.log(name2);
//运行结果:Joh

解决方案2:

var name;
var {name} = {name:'Joh'};
console.log(name);
//运行结果:Joh

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具http://tools.3water.com/code/HtmlJsRun测试上述代码运行结果。

更多关于JavaScript相关内容可查看本站专题:《javascript面向对象入门教程》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
jQuery 行级解析读取XML文件(附源码)
Oct 12 Javascript
js创建对象的几种常用方式小结(推荐)
Oct 24 Javascript
基于jquery的返回顶部效果(兼容IE6)
Jan 17 Javascript
点弹代码 点击页面任何位置都可以弹出页面效果代码
Sep 17 Javascript
javascript中的绑定与解绑函数应用示例
Jun 24 Javascript
javascript中eval函数用法分析
Apr 25 Javascript
jQuery UI设置固定日期选择特效代码分享
Aug 27 Javascript
jQuery源码分析之init的详细介绍
Feb 13 Javascript
Angular.js自定义指令学习笔记实例
Feb 24 Javascript
vuejs父子组件之间数据交互详解
Aug 09 Javascript
AngularJs 最新验证手机号码的实例,成功测试通过
Nov 26 Javascript
在vue中获取wangeditor的html和text的操作
Oct 23 Javascript
ES6知识点整理之函数对象参数默认值及其解构应用示例
Apr 17 #Javascript
仿vue-cli搭建属于自己的脚手架的方法步骤
Apr 17 #Javascript
一篇文章,教你学会Vue CLI 插件开发
Apr 17 #Javascript
ES6知识点整理之函数数组参数的默认值及其解构应用示例
Apr 17 #Javascript
mpvue性能优化实战技巧(小结)
Apr 17 #Javascript
node.js监听文件变化的实现方法
Apr 17 #Javascript
vue中格式化时间过滤器代码实例
Apr 17 #Javascript
You might like
PHP安全配置
2006/12/06 PHP
php addslashes和mysql_real_escape_string
2010/01/24 PHP
php实现把url转换迅雷thunder资源下载地址的方法
2014/11/07 PHP
php判断数组中是否存在指定键(key)的方法
2015/03/17 PHP
php array_map使用自定义的函数处理数组中的每个值
2016/10/26 PHP
关于laravel 数据库迁移中integer类型是无法指定长度的问题
2019/10/09 PHP
比较简单的一个符合web标准的JS调用flash方法
2007/11/29 Javascript
Exjs 入门篇
2010/04/07 Javascript
通过Javascript创建一个选择文件的对话框代码
2012/06/16 Javascript
jquery实现倒计时代码分享
2014/06/13 Javascript
JavaScript中用于生成随机数的Math.random()方法
2015/06/15 Javascript
基于jquery日历价格、库存等设置插件
2020/07/05 jQuery
webpack中CommonsChunkPlugin详细教程(小结)
2017/11/09 Javascript
Vuejs中使用markdown服务器端渲染的示例
2017/11/22 Javascript
JS中this的指向以及call、apply的作用
2018/05/06 Javascript
微信小程序 网络通信实现详解
2019/07/23 Javascript
python基于windows平台锁定键盘输入的方法
2015/03/05 Python
python使用xlrd实现检索excel中某列含有指定字符串记录的方法
2015/05/09 Python
今天 平安夜 Python 送你一顶圣诞帽 @微信官方
2017/12/25 Python
python数据结构学习之实现线性表的顺序
2018/09/28 Python
pandas.read_csv参数详解(小结)
2019/06/21 Python
python中列表的切片与修改知识点总结
2019/07/23 Python
Python进阶之迭代器与迭代器切片教程
2020/01/29 Python
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用
2020/03/24 Python
html5模拟平抛运动(模拟小球平抛运动过程)
2013/07/25 HTML / CSS
党员思想汇报范文
2013/12/30 职场文书
报关专员求职信范文
2014/02/22 职场文书
集体生日活动方案
2014/08/18 职场文书
庆元旦演讲稿
2014/09/15 职场文书
毕业设计论文致谢词
2015/05/14 职场文书
运动会通讯稿300字
2015/07/20 职场文书
小学班主任工作随笔
2015/08/15 职场文书
SpringBoot集成Redis,并自定义对象序列化操作
2021/06/22 Java/Android
用php如何解决大文件分片上传问题
2021/07/07 PHP
Python机器学习实战之k-近邻算法的实现
2021/11/27 Python
教你部署vue项目到docker
2022/04/05 Vue.js