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将文本转化成JSON对象需要注意的问题
May 09 Javascript
JavaScript中的console.dir()函数介绍
Dec 29 Javascript
jQuery复制表单元素附源码分享效果演示
Sep 30 Javascript
JavaScript函数基础详解
Feb 03 Javascript
详解vue slot插槽的使用方法
Jun 13 Javascript
JavaScript学习笔记之惰性函数示例详解
Aug 27 Javascript
微信小程序实现YDUI的ScrollNav组件
Feb 02 Javascript
详解vue-cli3多页应用改造
Jun 04 Javascript
详解node和ES6的模块导出与导入
Feb 19 Javascript
Vue项目vscode 安装eslint插件的方法(代码自动修复)
Apr 15 Javascript
Vue2.x和Vue3.x的双向绑定原理详解
Nov 05 Javascript
JavaScript实现手风琴效果
Feb 18 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创建PDF中文文档
2006/10/09 PHP
php mssql 分页SQL语句优化 持续影响
2009/04/26 PHP
php多次include后导致全局变量global失效的解决方法
2015/02/28 PHP
PHP中的switch语句的用法实例详解
2015/10/21 PHP
深入理解PHP中的empty和isset函数
2016/05/26 PHP
PHP重置数组为连续数字索引的几种方式总结
2018/03/12 PHP
PHP+MySQL高并发加锁事务处理问题解决方法
2018/04/30 PHP
javascript中利用柯里化函数实现bind方法【推荐】
2016/04/29 Javascript
JavaScript中关于iframe滚动条的去除和保留
2016/11/17 Javascript
微信小程序 textarea 详解及简单使用方法
2016/12/05 Javascript
JS中去掉array中重复元素的方法
2017/05/26 Javascript
详解使用 Node.js 开发简单的脚手架工具
2018/06/08 Javascript
Vue+axios实现统一接口管理的方法
2018/07/23 Javascript
vue组件挂载到全局方法的示例代码
2018/08/02 Javascript
原生JS无缝滑动轮播图
2019/10/22 Javascript
Vue最新防抖方案(必看篇)
2019/10/30 Javascript
ant-design-vue按需加载的坑的解决
2020/05/14 Javascript
js获取图片的base64编码并压缩
2020/12/05 Javascript
python实现简单温度转换的方法
2015/03/13 Python
python操作MySQL 模拟简单银行转账操作
2017/09/27 Python
python http接口自动化脚本详解
2018/01/02 Python
Python 调用 zabbix api的方法示例
2019/01/06 Python
Python学习笔记之图片人脸检测识别实例教程
2019/03/06 Python
python 实现识别图片上的数字
2019/07/30 Python
python或C++读取指定文件夹下的所有图片
2019/08/31 Python
pycharm下pyqt4安装及环境配置的教程
2020/04/24 Python
python接口自动化之ConfigParser配置文件的使用详解
2020/08/03 Python
太阳镜仓库,售价20美元或更少:Sunglass Warehouse
2016/09/28 全球购物
HolidayLettings英国:预订最好的度假公寓、别墅和自助式住宿
2019/08/27 全球购物
大学生职业生涯规划书模版
2013/12/30 职场文书
房地产广告词大全
2014/03/19 职场文书
同居协议书范本
2014/04/23 职场文书
学习党的群众路线实践活动思想汇报
2014/09/12 职场文书
超市督导岗位职责
2015/04/10 职场文书
nginx简单配置多个server的方法
2021/03/31 Servers
python3操作redis实现List列表实例
2021/08/04 Python