多用户商城网站建设二次开发,一定要知道的网站,wordpress的集成环境,福州网站建设制作首选荧光信息ES6 允许按照一定模式#xff0c;从数组和对象中提取值#xff0c;对变量进行赋值#xff0c;这被称为解构#xff0c;解构的本质属于“模式匹配”#xff0c;只要等号两边的模式相同#xff0c;左边的变量就会被赋予对应的值。如果解构不成功#xff0c;变量的值就等于…ES6 允许按照一定模式从数组和对象中提取值对变量进行赋值这被称为解构解构的本质属于“模式匹配”只要等号两边的模式相同左边的变量就会被赋予对应的值。如果解构不成功变量的值就等于undefined。
1.数组解构 等号左边的变量放到中括号内部匹配右侧数组中的元素。 1.let [a,b,c][1,2,3]; console.log(a,b,c); 2.let [a,b,c,d,e][1,2,3,[4,5],6]; console.log(a,b,c,d,e); 3.不完全解构 let [a,b,c,[d],e][1,2,3,[4,5,6],7]; console.log(a,b,c,d,e); 4.集合解构 ...扩展运算符 let [a,...b][1,2,3,4,5]; console.log(a,b); 5.默认值解构当匹配值严格等于undefined时默认值生效 let [a1,b2,c3][4,5,6]; console.log(a,b,c); let [a1,b2,c3][]; console.log(a,b,c); 6.默认值也可以是函数 function test(){console.log(hello)} let [atest()][1]; console.log(a); let [atest()][]; console.log(a); 7.let arr[1,2,3,4]; let [...a]arr; console.log(aarr);//false
2.对象解构 等号左边的变量放到大括号内部匹配右侧对象中的元素。对象的属性没有次序变量必须与属性同名才能取到正确的值 1.let {foo,bar}{foo:hello,bar:world}; console.log(foo,bar); 2.如果变量名和属性名不一致需要重命名 let {foo:baz}{foo:hello,bar:world}; baz:hello 3.对象的解构赋值是下面形式的简写 前面属性名后边变量名 let {foo:foo,bar:bar}{foo:hello,bar:world}; 4.嵌套结构 let obj{p:[hello,{y:world}]}; let {p:[a,{y:b}]}obj; console.log(a,b);hello world 5.默认值结构 let {x:y3}{}; console.log(y);3 经典面试题: const [a, b, c, ...d] [1, 2, 3, 11, 999]; const { e, f,f1, g, ...h } { f: 4, g: 5, i: 6, j: 7 }; console.log(a, b, c, d, e, f1, g, h); 3.字符串解构 1.可以使用对象解构或者是数组解构使用数组结构可以获取指定字符使用对象结构可以获取实例属性方法; let [a,b,c]hello; console.log(a,b,c);h e l 2.也可以将string字符串转换为数组 let [...arr]hello; console.log(arr); 3.使用对象解构 let {toString,valueOf,length}hello;//相当于把‘hello’当成String基本包装器类型 console.log(toString,valueOf,length)
4.数值解构 可以获取到数值包装器构造函数原型中指定的方法。 let {toString,valueOf}10; console.log(toString,valueOf) 5.布尔值解构 let {toString,valueOf}true; console.log(toString,valueOf);