ES6

ES6学习笔记4:变量的解构赋值杂七杂八一锅端篇

Posted by mieruko on 2016-12-08

前言

变量的解构赋值。
一个使多变量赋值变得更加简单的东西。
它有很多形式,前面我记录了数组形式,对象形式,这是对基本知识点的一个归纳。然而仍然有很多杂七杂八的小发现没有提到,这里一起说。

字符串类型的小发现

字符串,它用双引号括起来的形式,常常让我们忘记它是引用类型的现实。

看这样一段代码:

1
let {length} = 'yo.';

不会报错,为什么?
因为这里我们其实只是把String类型对象的一个属性给调出来用了!^_^,虽然你看着也许会有点不顺眼,但是想一想这个类型,想一想字符串装箱,拆箱的过程,是不是一下子就明白了?

字符串的特别之处,还在于有时候它可以被看作是数组。

1
let [a, b, c] = 'Yo.';

楼上成功把字符串当作数组,解构出3个变量^_^。

函数传参解构

先看这样一段代码:

1
2
3
4
5
6
7
var arr = [1, 2];
function test(a, b) {
console.log("a:", a);
console.log("b:", b);
}

test(arr[0], arr[1]);

运行没毛病,但是它可以变短:

1
2
3
4
5
6
7
var arr = [1, 2];
function test([a, b]) {
console.log("a:", a);
console.log("b:", b);
}

test(arr);

免去手动赋值,参数整体传入,并且在传参时被解构。
传对象的时候也是一样的道理:

1
2
3
4
5
6
7
var obj = {a:1, b:2};    

function test({a, b}) {
console.log("a:", a);
console.log("b:", b);
}
test(obj);

结语

知识点是死的,然而用法却有一大锅哈哈哈哈。
接下来就是在以后的编码中用更多的实践去创造更多的小发现啦~~^_^