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 相关文章推荐
浅析Prototype的模板类 Template
Dec 07 Javascript
在页面中js获取光标/鼠标的坐标及光标的像素坐标
Nov 11 Javascript
Jquery遍历checkbox获取选中项value值的方法
Feb 13 Javascript
JS将数字转换成三位逗号分隔的样式(示例代码)
Feb 19 Javascript
javascript 判断两个日期之差的示例代码
Sep 05 Javascript
Jquery实时监听input value的实例
Jan 26 Javascript
快速实现jQuery多级菜单效果
Feb 01 Javascript
关于Ajax的原理以及代码封装详解
Sep 08 Javascript
Angular自定义组件实现数据双向数据绑定的实例
Dec 11 Javascript
回顾Javascript React基础
Jun 15 Javascript
jQuery - AJAX load() 实例用法详解
Aug 27 jQuery
js实现图片3D轮播效果
Sep 21 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
虹吸式咖啡壶操作
2021/03/03 冲泡冲煮
教你如何把一篇文章按要求分段
2006/10/09 PHP
几个有用的php字符串过滤,转换函数代码
2012/05/01 PHP
php安装php_rar扩展实现rar文件读取和解压的方法
2016/11/17 PHP
JS控件autocomplete 0.11演示及下载 1月5日已更新
2007/01/09 Javascript
javascript:void(0)的作用示例介绍
2013/10/28 Javascript
js判断页面中是否有指定控件的简单实例
2014/03/04 Javascript
Webpack 实现 Node.js 代码热替换
2015/10/22 Javascript
Angular的自定义指令以及实例
2016/12/26 Javascript
Vue分页组件实例代码
2017/04/17 Javascript
微信小程序实现音乐播放器
2019/11/20 Javascript
JavaScript定时器使用方法详解
2020/03/26 Javascript
uniapp实现可以左右滑动导航栏
2020/10/21 Javascript
[13:16]INFAMOUS vs VGJ T BO3
2018/06/07 DOTA
Python中有趣在__call__函数
2015/06/21 Python
Python的消息队列包SnakeMQ使用初探
2016/06/29 Python
windows上安装Anaconda和python的教程详解
2017/03/28 Python
Python中你应该知道的一些内置函数
2017/03/31 Python
解决Scrapy安装错误:Microsoft Visual C++ 14.0 is required...
2017/10/01 Python
python sys.argv[]用法实例详解
2018/05/25 Python
Python 实现数据结构-堆栈和队列的操作方法
2019/07/17 Python
Python利用matplotlib绘制约数个数统计图示例
2019/11/26 Python
Python计算公交发车时间的完整代码
2020/02/12 Python
基于python的docx模块处理word和WPS的docx格式文件方式
2020/02/13 Python
python和JavaScript哪个容易上手
2020/06/23 Python
HTML5 Canvas 实现K线图的示例代码
2019/12/23 HTML / CSS
SOKOLOV官网:俄罗斯珠宝首饰品牌
2021/01/02 全球购物
我能否用void** 指针作为参数, 使函数按引用接受一般指针
2013/02/16 面试题
工程现场管理求职自荐信
2013/10/02 职场文书
《四季》教学反思
2014/04/08 职场文书
软件项目经理岗位职责
2015/04/01 职场文书
Django操作cookie的实现
2021/05/26 Python
关于Nginx中虚拟主机的一些冷门知识小结
2022/03/03 Servers
JavaScript模拟实现网易云轮播效果
2022/04/04 Javascript
MySQL的存储函数与存储过程的区别解析
2022/04/08 MySQL
css3属性选择器 “~”(波浪号) “,”(逗号) “+”(加号)和 “>”(大于号)
2022/04/19 HTML / CSS