ES6中的变量的解构赋值, 解放我们的双手,实现变量的批量赋值

2023-06-18 0 1,167

结语

表达式的重构表达式, 听出来很繁杂, 单纯点说能认知成大批量操作方式表达式表达式,先有个第一印象, 上面渐渐上看

节录

表达式的重构表达式总共分成下列三种:数组的重构表达式 、第一类的重构表达式 、数组的重构表达式 、

一、数组的重构表达式

先上看呵呵他们平常对许多个表达式表达式是怎样操作方式的:

let a = 1 let b = 2 let c = 3 let d = 4

所以他们看呵呵怎样大批量重新命名那些表达式:

let [a, b, c, d] = [1, 2, 3, 4] a // 1 b // 2c // 3 d // 4

这就是一个单纯的数组的表达式重构表达式,即等号左边的表达式与等号右边的相同位置的值一一对应进行表达式。

重构失败

有三种情况会重构失败:

等号左边的表达式与等号右边没有对应上,则会被解析成undefined
let [a, b, c] = [1, 2] a // 1 b // 2 c // undefined

上述代码中的 c , 与之匹配的是undefined,所以最后为undefined

等号右边是一个不可遍历的结构
let [a, b] = 1

这很明显就会直接报错, 重构失败, 因为等号两边都无法进行匹配

不完全重构

这个单纯,直接看代码:

let [a, b] = [1, 2, 3] a // 1 b // 2

单纯点说就是等号右边有许多值,但等号左边只有两个表达式需要表达式, 这种叫做不完全重构, 不会报错。

默认值

在重构时,是允许给予一个默认值的, 如果该表达式没有重构成功, 则会将默认值表达式给它, 例如:

let [a, b=2] = [1] a // 1b // 2

如果b没有表达式一个默认值 2 , 则 b 应为 undefined , 现在给了b 一个默认值 2 , 则在b 重构失败时,将默认值2表达式了给它。

补充呵呵: 在给予表达式默认值时, 只有当没有对应的值与之匹配时或者与之匹配的是 undefined 时, 才会将默认值表达式给自己, 但是如果与之匹配的是 null , 则默认值不起作用, 最后会将 null 表达式给它, 看例子:

let [a=1, b=2, c=3] = [undefined, null] a // 1 b // null c // 3

二、第一类的重构表达式

第一类的重构表达式能很方便的取出第一类里面的值, 先上看呵呵他们平常取出第一类中的值,并表达式给一个变量是怎样操作方式的吧:

let obj = {name: jack, age: 18, gender: } let name = obj.name let age = obj.age let gender = obj.gender

有没有觉得很麻烦?因为要重新命名一个个表达式,并对齐进行表达式,他们上看呵呵第一类的重构表达式是怎样帮他们简化操作方式的:

let {name, gender, age} = {name: jack, age: 18, gender: }

就只需要一行代码就能将第一类中的三个值都取出来并表达式给三个表达式。但是,他们在使用第一类的重构表达式的时候必须要注意,等号左边的顺序是随意的, 系统会根据你的表达式名, 优先去第一类中寻找与你第一类名相同的键, 将它的值表达式给这个表达式。

这么一说, 他们的表达式名就必须要跟第一类中的健名一样了吗?不是的, 其实他们能自己再起一个名字,例如:

let {n: name, g: gender, a: age} = {name: jack, age: 18, gender: }

这样就能做到自己给表达式起名字了, 并且这样做有一个好处, 就是能避免与前面的代码中的表达式名重合了。

当然,第一类的重构表达式也是能给一个默认值的, 用法跟数组的重构表达式一样,这里就不多做解释了, 感兴趣的能尝试呵呵。

三、数组的重构表达式

这个也非常单纯,直接看例子吧:

let [a, b, c, d] = word a // “w” b // “o” c // “r” d // “d”

其实数组的重构,就相当于遍历这个数组,然后放到一个数组中, 表达式给等号左边的表达式

结束语

好了, 关于表达式重构表达式的知识就将这么多,其实还有一些相关知识,例如数值和布尔值的重构表达式、函数参数的重构表达式等, 但我觉得都不常用,所以就没给大家细讲,如果感兴趣能去查阅ES6的书。

yexplore的编程小屋

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务