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的文本框与autocomplete结合使用(asp.net+json)
May 30 Javascript
jQuery使用之设置元素样式用法实例
Jan 19 Javascript
详解vue.js组件化开发实践
Dec 14 Javascript
jQuery弹出层插件popShow(改进版)用法示例
Jan 23 Javascript
原生javascript移动端滑动banner效果
Mar 10 Javascript
详解Vue.js搭建路由报错 router.map is not a function
Jun 27 Javascript
Vue自定义指令详解
Jul 28 Javascript
vue实现样式之间的切换及vue动态样式的实现方法
Dec 19 Javascript
JavaScript获取用户所在城市及地理位置
Apr 21 Javascript
详解AngularJS 过滤器的使用
Jun 02 Javascript
vue登录注册实例详解
Sep 14 Javascript
关于JavaScript中异步/等待的用法与理解
Nov 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语言构造器介绍
2013/07/08 PHP
php数组中包含中文的排序方法
2014/06/03 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
json格式化/压缩工具 Chrome插件扩展版
2010/05/25 Javascript
修改好的jquery滚动字幕效果实现代码
2011/06/22 Javascript
jquery获取tr并更改tr内容示例代码
2014/02/13 Javascript
jQuery中outerHeight()方法用法实例
2015/01/19 Javascript
js 获取当前web应用的上下文路径实现方法
2016/08/19 Javascript
JS表格组件BootstrapTable行内编辑解决方案x-editable
2016/09/01 Javascript
layui弹出层效果实现代码
2017/05/19 Javascript
简单谈谈关于 npm 5.0 的新坑
2017/06/08 Javascript
JQuery form表单提交前验证单选框是否选中、删除记录时验证经验总结(整理)
2017/06/09 jQuery
详解使用webpack打包编写一个vue-toast插件
2017/11/08 Javascript
Chart.js 轻量级HTML5图表绘制工具库(知识整理)
2018/05/22 Javascript
微信小程序实现天气预报功能
2018/07/18 Javascript
使用vue 国际化i18n 实现多实现语言切换功能
2018/10/11 Javascript
基于layui框架响应式布局的一些使用详解
2019/09/16 Javascript
Python自动化测试Eclipse+Pydev 搭建开发环境
2016/08/15 Python
Python与人工神经网络:使用神经网络识别手写图像介绍
2017/12/19 Python
jupyter notebook实现显示行号
2020/04/13 Python
解决keras模型保存h5文件提示无此目录问题
2020/07/01 Python
8种常用的Python工具
2020/08/05 Python
Melijoe英国官网:法国儿童时尚网站
2016/11/18 全球购物
精灵市场:Pixie Market
2019/06/18 全球购物
什么是Web Service?
2012/07/25 面试题
团员个人的自我评价
2013/12/02 职场文书
装修致歉信
2014/01/15 职场文书
初一地理教学反思
2014/01/16 职场文书
高一英语教学反思
2014/01/22 职场文书
骨干教师考核方案
2014/05/09 职场文书
2014新生大学四年计划书
2014/09/21 职场文书
2015年五四青年节活动总结
2015/02/10 职场文书
勤俭节约倡议书范文
2015/04/29 职场文书
历史博物馆观后感
2015/06/05 职场文书
某某幼儿园的教育教学管理调研分析报告
2019/11/29 职场文书
html form表单基础入门案例讲解
2021/07/21 HTML / CSS