前端开发培训ECMAScript入门教程百读易莱胜web前端培训专家 联系客服

发布时间 : 星期日 文章前端开发培训ECMAScript入门教程百读易莱胜web前端培训专家更新完毕开始阅读416dc5e7970590c69ec3d5bbfd0a79563c1ed4cb

可以使用圆括号的情况

可以使用圆括号的情况只有一种:赋值语句的非模式部分,可以使用圆括号。 [(b)]=[3]; // 正确({ p:(d)}={}); // 正确[(parseInt.prop)]=[3]; // 正确

上面三行语句都可以正确执行,因为首先它们都是赋值语句,而不是声明语句;其次它们的圆括号都不属于模式的一部分。第一行语句中,模式是取数组的第一个成员,跟圆括号无关;第二行语句中,模式是p,而不是d;第三行语句与第一行语句的性质一致。

用途

变量的解构赋值用途很多。 (1)交换变量的值 let x =1;let y =2; [x, y]=[y, x];

上面代码交换变量x和y的值,这样的写法不仅简洁,而且易读,语义非常清晰。 (2)从函数返回多个值

函数只能返回一个值,如果要返回多个值,只能将它们放在数组或对象里返回。有了解构赋值,取出这些值就非常方便。 // 返回一个数组functionexample(){ return[1,2,3];}let[a, b, c]=example(); // 返回一个对象functionexample(){ return{ foo:1, bar:2

};}let{ foo, bar }=example(); (3)函数参数的定义

解构赋值可以方便地将一组参数与变量名对应起来。

// 参数是一组有次序的值functionf([x, y, z]){...}f([1,2,3]);

// 参数是一组无次序的值functionf({x, y, z}){...}f({z:3, y:2, x:1}); (4)提取JSON数据

解构赋值对提取JSON对象中的数据,尤其有用。 let jsonData ={ id:42, status:\, data:[867,5309]};

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

console.log(id, status, number); // 42, \

上面代码可以快速提取 JSON 数据的值。 (5)函数参数的默认值

jQuery.ajax =function(url,{ async =true,

beforeSend =function(){}, cache =true,

complete =function(){}, crossDomain =false, global =true, // ... more config}){ // ... do stuff};

指定参数的默认值,就避免了在函数体内部再写var foo = config.foo || 'default foo';这样的语句。 (6)遍历Map结构

任何部署了Iterator接口的对象,都可以用for...of循环遍历。Map结构原生支持Iterator接口,配合变量的解构赋值,获取键名和键值就非常方便。

const map =newMap(); map.set('first','hello'); map.set('second','world'); for(let[key, value] of map){ console.log(key +\+ value);} // first is hello// second is world

如果只想获取键名,或者只想获取键值,可以写成下面这样。 // 获取键名for(let[key] of map){ // ...}

// 获取键值for(let[,value] of map){ // ...}

(7)输入模块的指定方法

加载模块时,往往需要指定输入哪些方法。解构赋值使得输入语句非常清晰。 const { SourceMapConsumer, SourceNode }=require(\);

(三)字符串的扩展

ES6 加强了对 Unicode 的支持,并且扩展了字符串对象。

字符的 Unicode 表示法

JavaScript 允许采用\%uxxxx形式表示一个字符,其中xxxx表示字符的 Unicode 码点。 \ // \

但是,这种表示法只限于码点在\