摘要:基本概念作用解构是有组织的从对象或数组中提取信息片段条件明确从哪提取信息片段,即信息来源于哪个对象或数组明确提取什么信息片段,即对象的哪个属性或数组的第几个元素其他解构除了提取信息片段之外,还有一些辅助的功能为可能提取不到的信息设置默认值为
基本概念 作用
解构是有组织的从对象或数组中提取信息片段
条件明确从哪提取信息片段,即信息来源于哪个对象或数组
明确提取什么信息片段,即对象的哪个属性或数组的第几个元素
其他解构除了提取信息片段之外,还有一些辅助的功能
为可能提取不到的信息设置默认值
为提取到的信息重新命名
场景解构的使用场景不仅在声明变量赋值阶段,也可以单纯地给以有的变量重新赋值
在函数参数中使用解构
举例let node = { type: "Identify", name: "foo", subNode: { name: "subFoo" } } let { type, // 获得node的type信息 name: myname, // 获得node的name信息,并重命名为myname text, // 获得node的text信息,若不存在且不设置默认值,则为undefined value: myvalue = "gaga", // 获得node的value信息,并重命名为myvalue,若不存在,则为"gaga" subNode: { // 获得node的subNode中的name信息,并重命名为subName,嵌套解构 name: subName } } = node // 从node中获得信息来源 type // "Identify" text // undefined value // ReferenceError myvalue // "gaga" subName // "subFoo"
上面的代码与下面的代码输出相同
let node = { type: "Identify", name: "foo", subNode: { name: "subFoo" } } let type, myname, text, myvalue = "hehe", subName ({ type, name: myname, text, value: myvalue = "gaga", subNode: { name: subName } } = node)数组解构 与对象解构的不同之处
对象通过属性名来标示信息片段,数组通过位置来标示信息
对象解构默认将提取到的信息赋给与属性名相同的变量中,数组需要给提取出的信息命名
可用于交换变量
举例let colors = ["red", "green", "blue"] let [,,thirdColor] = colors // 从colors数组中提取下标为2的元素 let [firstColor] = colors // 从colors数组中提取下标为0的元素 let [,secondColor,,fourthColor] = colors // 从colors数组中提取下标为1和3的元素,若元素不存在则为undefined let [,secondColor,,fourthColor = "yellow"] = colors // 设置默认值 // 嵌套解构 let colors = ["red", ["green", "lightgreen"], "blue"] let [, [,subColor],] = colors // 不定元素 let colors = ["red", "green", "lightgreen", "blue"] let [first, ...others] = colors others // ["green", "lightgreen", "blue"] // 交换变量 let a = 1, b = 2; [a, b] = [b, a]
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/92581.html
摘要:一概念对象是属性的集合,从对象里取值,只能逐个取,而解构赋值表达式可以实现批量取值,赋值。赋值操作符等号两边的解构要一致才能正确赋值解构赋值表达式是赋值表达式的语法糖。三数组解构赋值数组的属性名称叫索引,表示的是位置。 一、概念 对象是属性的集合,从对象里取值,ES3/5只能逐个取,而解构赋值表达式可以实现批量取值,赋值。 // 数据对象person var person = { ...
摘要:概述是一个事务型数据库系统,类似于基于的。然而不同的是它使用固定列表,是一个基于的面向对象的数据库。参考文档浏览器数据库入门教程 概述 IndexedDB 是一个事务型数据库系统,类似于基于 SQL 的 RDBMS。 然而不同的是它使用固定列表,IndexedDB 是一个基于 JavaScript 的面向对象的数据库。现有的浏览器数据储存方案,都不适合储存大量数据:Cookie 的大小...
阅读 2555·2021-11-22 12:05
阅读 3440·2021-10-14 09:42
阅读 1675·2021-07-28 00:15
阅读 1981·2019-08-30 11:08
阅读 1475·2019-08-29 17:31
阅读 918·2019-08-29 16:42
阅读 2327·2019-08-26 11:55
阅读 2107·2019-08-26 11:49