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 相关文章推荐
javascript编程起步(第四课)
Jan 10 Javascript
JS小功能(offsetLeft实现图片滚动效果)实例代码
Nov 28 Javascript
详解javascript中原始数据类型Null和Undefined
Dec 17 Javascript
AngularJS控制器controller正确的通信的方法
Jan 25 Javascript
论JavaScript模块化编程
Mar 07 Javascript
jquery $.trim()去除字符串空格的实现方法【附图例】
Mar 30 Javascript
jQuery绑定事件的几种实现方式
May 09 Javascript
仿百度换肤功能的简单实例代码
Jul 11 Javascript
javascript时间差插件分享
Jul 18 Javascript
简洁实用的BootStrap jQuery手风琴插件
Aug 31 Javascript
JS判断一个数是否是水仙花数
Jun 11 Javascript
Express下采用bcryptjs进行密码加密的方法
Feb 07 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 模拟登陆MSN并获得用户信息
2009/05/16 PHP
destoon实现调用自增数字从1开始的方法
2014/08/21 PHP
smarty中post用法实例
2014/11/28 PHP
js浏览器本地存储store.js介绍及应用
2014/05/13 Javascript
jquery $.trim()方法使用介绍
2014/05/21 Javascript
JS中三目运算符和if else的区别分析与示例
2014/11/21 Javascript
jquery模拟alert的弹窗插件
2015/07/31 Javascript
JS实现搜索框文字可删除功能
2016/12/28 Javascript
Angular 2.0+ 的数据绑定的实现示例
2017/08/09 Javascript
JavaScript中的return布尔值的用法和原理解析
2017/08/14 Javascript
JavaScript生成简单等差数列
2017/11/28 Javascript
浅析vue-router jquery和params传参(接收参数)$router $route的区别
2018/08/03 jQuery
详解javascript appendChild()的完整功能
2018/08/18 Javascript
vue 中基于html5 drag drap的拖放效果案例分析
2018/11/01 Javascript
使用Javascript简单计算器
2018/11/17 Javascript
微信小程序上传图片到php服务器的方法
2019/05/23 Javascript
JS Web Flex弹性盒子模型代码实例
2020/03/10 Javascript
js校验开始时间和结束时间
2020/05/26 Javascript
python 构造三维全零数组的方法
2018/11/12 Python
Python实现监控Nginx配置文件的不同并发送邮件报警功能示例
2019/02/26 Python
python实现最小二乘法线性拟合
2019/07/19 Python
自定义Django Form中choicefield下拉菜单选取数据库内容实例
2020/03/13 Python
浅析python 通⽤爬⾍和聚焦爬⾍
2020/09/28 Python
纯CSS3实现的8种Loading动画效果
2014/07/05 HTML / CSS
西班牙第一的网上药房:PromoFarma.com
2017/04/17 全球购物
工商管理专业实习大学生自我鉴定
2013/09/19 职场文书
奥巴马演讲稿
2014/01/08 职场文书
网络编辑职责
2014/03/01 职场文书
2014领导干部四风问题查摆思想汇报
2014/09/13 职场文书
2014新生大学四年计划书
2014/09/21 职场文书
2015秋季幼儿园开学寄语
2015/03/25 职场文书
合同纠纷调解书
2015/05/20 职场文书
SQL Server数据定义——模式与基本表操作
2021/04/05 SQL Server
MongoDB数据库的安装步骤
2021/06/18 MongoDB
golang fmt格式“占位符”的实例用法详解
2021/07/04 Golang
实战Python爬虫爬取酷我音乐
2022/04/11 Python