es6之参数解构

0 什么是解构?

德里达从语言观念的分析入手,对西方形而上学传统思维方式的反思。指对有形而上学稳固性的结构及其中心进行消解,每一次解构都表现为结构的中断、分裂或解体,但是每一次解构的结果又都是产生新的结构。对上帝万能的认识是一次解构;理性将其拆解,同时建立了自己的结构。

当然 上面是复制.很绕

个人感觉 就是 把某个东西解析,然后重新构建

在es6 中的体现是将某个对象或者数组等进行解析,然后按照一定规则 构建到新的对象或其他类型中

 

1.变量解构赋值的方法

标准中的解析篇章 14.3.3 Destructuring Binding Patterns 篇章

https://tc39.es/ecma262/#sec-destructuring-binding-patterns

全英文.有点难理解,写一下自己的理解

使用解构的 object 和 array 两种

object 的解构

示例1: 对象属性值解构

let { foo, bar } = { foo: 'aaa', bar: 'bbb' };

//foo值为'aaa' bar值 为'bbb'

属性的解构

有两中写法 

一种是SingleNameBinding[?Yield, ?Await]   属性名与变量名相同的情况下,可以简化成 一次,例如 

let { foo, bar } = { foo: 'aaa', bar: 'bbb' };

另外一种是 PropertyName[?Yield, ?Await] : BindingElement[?Yield, ?Await]  当属性名与变量名不一致的时候 需要全写  属性名:绑定的值  例如

let { foo:ss, bar } = { foo: 'aaa', bar: 'bbb' }; //ss的值为'aaa'

注:多个属性解构的时候 用逗号隔开 ,两种模式可以混合使用

数组的解构

array的解构的 符号 是 中括号

let [a, b, c] = [1, 2, 3];

Elision (略过某系index)的写法

使数组的index+1,即跳过一个 符号为 逗号 ,例如

let [, , a] = [1, 2, 3];//a的值为 3

注:如果len超过2^32-1,上述设置将抛出。

 

特殊情况

1.字符串的解构

字符串可以作为字符的数组对象(这里没找到相关的文档,现象差不多)来进行解构 ,eg:

let[a,b]="Hello" //a 的值 为H ,b的值为e

2.RestElement与解构

let [head, ...tail] = [1, 2, 3, 4];
head // 1
tail // [2, 3, 4]

 

持续更新中...

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值