1、字符串也可以进行解构赋值
形成一个类似于“数组”的对象。
案例1-1:简单的字符串(类似于“数组”)
<script type="text/traceur">
const [a,b,c,d,e] ="Hello";
console.log(a); //H
console.log(b); //e
console.log(c); //l
console.log(d); //l
console.log(e); //o
</script>
解析:将字符串“Hello”作为一个类似于数组的值进行解构赋值,
a、b、c、d、e分别作为数组的几个下标值,依次进行输出。
案例1-2:字符串长度length(类似于“对象”)
<script type="text/traceur">
const {length:len} = "Hello";
console.log(len); //5
const {length} = "Hello World!";
console.log(length); //12
</script>
解析:对于属性解构赋值,字符串类似于数组的对象,都有一个length属性,
即表示可以对这个属性进行解构赋值。
2、函数参数解构赋值
对于函数的参数,也可以有解构赋值,同时对于函数参数的解构赋值,还可以使用默认值。
案例2-1:函数参数的解构赋值
<script type="text/traceur">
function sum([x,y]){
return x+y;
};
console.log(sum([1,2])); //3
</script>
解析:由于平时传入的参数x,y作为变量进行传入,加上“[ ]”表示以一个数组的形式进行传入参数,在调用函数的同时也是同样。
案例2-2:函数参数解构赋值的默认值
<script type="text/traceur">
function fun({x=0,y=0}={}){
return [x,y];
};
console.log(fun({x:100,y:200})); //[100,200]
console.log(fun({x:100})); //[100,0]
console.log(fun({})); //[0,0]
console.log(fun()); //[0,0]
</script>
<script type="type/traceur">
function fun({x,y} = {x:0,y:0}) {
return [x,y];
};
console.log(fun({x:100,y:200})); //[100,200]
console.log(fun({x:100})); //[100,undefined]
console.log(fun({})); //[undefined,undefined]
console.log(fun()); //[0,0]
</script>