es6之参数解构

news/2024/7/19 13:25:05 标签: js

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]

 

持续更新中...


http://www.niftyadmin.cn/n/668117.html

相关文章

内部类详解

内部类详解 1、定义 一个类的定义放在另一个类的内部,这个类就叫做内部类。 public class First { public class Contents{ public void f(){ System.out.println("In Class Firsts inner Class Contents method f()"); } } } 像这样的&#xff0…

快速提高技术分析准确性

一、技术分析只是一种工具,而不是万试万灵的。在技术分析过程中,往往受各种主客观因素而产生偏差。因此要站在一个高的起点运用技术分析,而不是受技术分析所局限,产生错误引导。例如尽量多观察周、月K线形态变化,尽量忽…

C#之异步执行

0 什么是异步执行 异步(asynchronous)执行他还有个 兄弟是 同步执行(Synchronous) 同步执行呢 程序只能干一件事情, 干完一件 再干一件,中间还不能打扰他,反正他也不理, 一打扰一气之下就给你个未响应 ,让你干瞪眼. 你说气不气 异步执行就不一样了 程序进化了,他智商提高了…

更纯粹的下拉刷新和加载更多

版权声明:转载必须注明本文转自严振杰的博客:http://blog.yanzhenjie.com 在不久前的很多下拉刷新框架都带有上拉加载更多的功能,加载更多的功能可以动态关闭或者打开。再比如ListView和GridView是通过添加HeaderView和FooterView来实现了下拉…

发送微博消息

<?php$cookie_file dirname(__FILE__)."/weibo.cookie"; $username 用户名; $password 密码;$userCenter loginWeibo($username,$password);echo sendMsg("不知道能不能成功呢&#xff01;");function sendMsg($msg){global $cookie_file,$userCen…

指标股为什么异动

即使是面对政策性利好&#xff0c;深圳本地股、林业股的强势特征并没有想象中的那样强&#xff0c;煤炭、资源股的短暂冲高&#xff0c;并没有引起市场响应。 主力不得不启动指标股和权重股。 中国石油、中国石化等指标、权重股出现频繁大单推高&#xff0c;可是&#xff0c;市…

初学WebPack

0 什么是Webpack? WebPack 顾名思义, 网页打包, 将相关资源进行整合,方便发布,常见于各种前端框架中 官网中的解释是 本质上&#xff0c;webpack 是一个用于现代 JavaScript 应用程序的 静态模块打包工具。当 webpack 处理应用程序时&#xff0c;它会在内部构建一个 依赖…

springboot2.4.1不支持 velocity-engine-core 2.0

springboot2.4.1不支持 velocity-engine-core 2.0 解决办法: springboot版本切换成 2.2.1.RELEASE 最新实测 springboot2.4.3 支持 velocity-engine-core 2.0 <!--mybatisplus--><dependency><groupId>com.baomidou</groupId><artifactId>mybat…