博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
es6笔记(3) 变量的解构赋值
阅读量:5261 次
发布时间:2019-06-14

本文共 1111 字,大约阅读时间需要 3 分钟。

基本概念

本质上是一种匹配模式,只要等号两边的模式相同,那么左边的变量就可以被赋予对应的值。

// 以往定义接个变量的时候,需要这样var a = 1,    b = 2,    c = 3;// 使用ES6解构赋值,可以这样写let [a,b,c] = [1,2,3];

解构赋值的几种方式

1. 数组的解构赋值

let [foo,[[bar],baz]] =[1,[[2],3]];console.log(foo,bar,baz); //输出1,2,3

解构赋值是可以使用缺省的方式用于占位

let [,,c] = [1,2,3];console.log(c); //3

如果解构赋值时,没有找到对应的值会怎样?

let [a] = [];console.log(a); //解构失败 undefined;let [y = 1] = [];console.log(y); //因为第二个等号,解构失败。输出 1

2. 对象的解构赋值

我们知道,对象和数组不太一样,1对象是有属性的,2对象是无序的。那么变量的解构赋值如何进行呢?

//=======变量名,与属性名一致========== //此时会按照变量名, //与右侧的属性名匹配,如果一致就赋值。 let {a,b}={b:'bbbb',a:'aaaa'};  console.log(a); // aaaa  //=======变量名,与属性名不一致========= let {a:b} ={a:1}; console.log(b); // 1 console.log(a); // 报错 //真正被赋值的是变量,而不是前面属性

3. 基本类型的解构赋值

字符串在某些情况下会被当成数组使用

let [j,d] = "12";console.log(j,d); //1 2

直接获得字符串的长度,通过prototype。

let {length:len} = 'jd';console.log(len); //2

可以直接拿到类型prototype上的方法

let{toString:ts} = 1;let{toString:bs} = true;console.log(ts);  //输出  Number.prototype.toString 方法console.log(bs);  //输出  Boolean.prototype.toString 方法

null 和 undefined不能解构赋值

let a = undefined;   //直接报错

转载于:https://www.cnblogs.com/mcad/p/8422864.html

你可能感兴趣的文章
线程池的概念
查看>>
Oracle_Statspack性能诊断工具
查看>>
转获取sql维护的表关系
查看>>
Java 序列化
查看>>
Java 时间处理实例
查看>>
Java 多线程编程
查看>>
Java 数组实例
查看>>
mysql启动过程
查看>>
2017前端面试题总结
查看>>
Http GetPost网络请求
查看>>
SWIFT国际资金清算系统
查看>>
Sping注解:注解和含义
查看>>
站立会议第四天
查看>>
如何快速掌握一门技术
查看>>
利用AMPScript获取Uber用户数据的访问权限
查看>>
vagrant 同时设置多个同步目录
查看>>
python接口自动化28-requests-html爬虫框架
查看>>
生成随机数的模板
查看>>
hdu 2093
查看>>
Mysql 数据库操作
查看>>