React技术栈知识点总结

ES6 第二章 变量的解构赋值

2019-07-08  本文已影响0人  滨赫

第二章  变量的解构赋值

1.ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。

2.只要某种数据结构具有 Iterator 接口(后面会讲),都可以采用数组形式的解构赋值。

3.如果等号右边不是数组(严格的说不可解构)将会报错

4.对于set结构可以解构

(let[x,y,z]=newSet(['a','b','c']);x=a)

5.对象的解构赋值 :对象的解构与数组有一个重要的不同。数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。

let{foo,bar}={foo:'aaa',bar:'bbb'};

对象的解构赋值是下面形式的简写

let{foo:foo,bar:bar}={foo:'aaa',bar:'bbb'};

6.解构赋值允许指定默认值。ES6 内部使用严格相等运算符(===),判断一个位置是否有值。所以,只有当一个数组成员严格等于undefined,默认值才会生效。

7.如果默认值是一个表达式,那么这个表达式是惰性求值的,即只有在用到的时候,才会求值。

8.默认值可以引用解构赋值的其他变量,但该变量必须已经声明。

9.与数组一样,解构也可以用于嵌套结构的对象。

10.对象的解构也可以指定默认值。默认值生效的条件是,对象的属性值严格等于undefined。

11.用途:

变量的互换:let x=1;let y=2;[x,y]=[y,x];

从函数返回多个值:function example(){return[1,2,3];} let[a,b,c]=example();

function example(){return{foo:1,bar:2};} let{foo,bar}=example();

函数参数的定义

// 参数是一组有次序的值

functionf([x,y,z]){...}f([1,2,3]);

// 参数是一组无次序的值

functionf({x,y,z}){...}f({z:3,y:2,x:1});

提取 JSON 数据

letjsonData={

id:42,status:"OK",data:[867,5309]

};

let{id,status,data:number}=jsonData;

console.log(id,status,number);

// 42, "OK", [867, 5309]

函数参数的默认值

jQuery.ajax=function(

url,{async=true,

beforeSend=function(){},

cache=true,

complete=function(){},

crossDomain=false

,global=true, 

// ... more config}={})

// ... do stuff

};

遍历 Map 结构

const map=newMap();

map.set('first','hello');

map.set('second','world');

for(let[key,value]of map){console.log(key+" is "+value);}

// first is hello

// second is world

输入模块的指定方法

const{SourceMapConsumer,SourceNode}=require("source-map");

上一篇 下一篇

猜你喜欢

热点阅读