数组的形式解构赋值
模式匹配的方法进行赋值,对应位置必须对齐。(可以通过应用逗号实现)变量的取值由位置决定
①,如果变量多,后面的值无法对应(可以通过加逗号),二、如果值多,变量少,也会报错
②但是如果值多,或者变量多的情况发生在数组的最后的位置。则不报错,但最后多余的变量值为undefined,
③只要值为undefined则认为解构不成功
let [a,b,c]=[1,2,3];
//从数组中提取值,按照对应位置赋值。
console.log (a,b,c);//1,2,3
console.log ([a,b,c]);//数组
let x=[1,2,3];
console.log(x);//数组
let [aa,bb,[cc,dd],oo,...ll]=[9,0,[1,2],0,5,6,3];
console.log(aa,cc,dd,oo,ll);//9 1 2 0 (3) [5, 6, 3]
**④变量解构指定默认值,数组成员等于undefined,则默认值生效。如果是null就不会生效,**如下栗子:
function f() {
console.log('aaa');
}
let [y=f()]=[undefined];
console.log(y);
//结果输出:aaa
⑤如果指定的默认值,是表达式,则为惰性求值,在用的时候才会求值。结构赋值也可以引用其他变量。
解构失败,变量的值为undefined
解构赋值的作用:
① 用来交换变量的值:
`let w=1,e=4,t=5;
console.log(w,e,t);
[w,e,t]=[t,w,e]
console.log(w,e,t);
②函数可以返回多个值
return [1,2,3]
Iterator接口.
部署了Iterator接口的对象都可以用for。。。of循环遍历
// $(’#result’).append(
// 'there are '+'itme is ’
// );
对象的解构赋值
let {foo:foo,bar:baz}={foo:"aaa",bar:"bbb"};
对象解构赋值的内部机制是先找到同名的属性再赋值给对应的变量
bar只是一个名字。最后得到的是baz:bar;
模板字符串
①做普通字符串,
②定义多行字符串,表示多行,或者空格都会被保留
③或者在字符串中嵌入变量
可加变量可不加,
${} 花括号里面可以是表达式,变量,也可以是函数的调用
④trim() 去除字符串头尾空格
//在谷歌中输出的数字是蓝色,字符串是黑色的,
⑤应用模板字符串输出的结果都是字符串
var b=0,y=5,x;
function sum(a,y){
return x=a+6+y;
}
console.log(` i am a
\`man x=${sum(b,y)} `.trim());
console.log(`9990`);
var c="9999";
运行结果为
i am a
`man x=11