ECMA Script 6_解构赋值_模式匹配】的更多相关文章

解构赋值 从数组中提取值,按照对应位置,对变量赋值 只要等号右边的值不是对象或数组,就先将其转为对象. 由于 undefined 和 null 无法转为对象,所以对它们进行解构赋值,都会报错 let [a, b, c] = [1, 2, 3]; 只要某种数据结构具有 Iterator 接口,都可以采用数组形式的解构赋值 应用: const person = { name: 'RyenToretto', age: 22, sex: '男' }; // 解构赋值 const {name, age,…
1. 扩展运算符 内部调用的是数据结构的 Iterator 接口, 因此只要具有 Iterator 接口的对象,都可以使用扩展运算符 ... 如 map,,,, [...arr] 扩展运算符(spread)是三个点(...) 将一个数组转为用逗号分隔的参数序列 console.log(...[1, 2, 3]); // 1 2 3 console.log(1, ...[2, 3, 4], 5); // 1 2 3 4 5 [...document.querySelectorAll('div')]…
本地  data.json 文件 { "name": "大熊", "age": 18, "fnc": [ 1, 2, 3 ] } <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content=…
1.基本概念用法 1.1解构赋值:ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值. var a = 1; var b = 2; var c = 3; /*上述赋值语句用解构赋值为*/ var [a,b,c] = [1,2,3]; 1.2上述的解构发生在等号左右模式相同的情况下,如果等号两边的模式不一致,解构可能会不成功: /*当变量多于值个数或无值时,解构失败*/ var [foo] = []; var [a,b] = [1]; /*当变量少于值个数,不完全解构*/ let [a,…
//2017/7/14 //变量的解构赋值(解构:Destructuring) //(1)数组的解构赋值 let [a,b,c]=[1,2,3];//模式匹配,只要等号两边的模式相同,左边的变量就会被赋予对应的值. //eg: let [foo,[[bar],baz]]=[1,[[2],3]]; console.log(foo); console.log(bar); console.log(baz); let[,,third]=['foo','bar','baz']; console.log(t…
学习参考:http://es6.ruanyifeng.com/#docs/destructuring //2017/7/20 /*对象的解构赋值*/ //对象的解构赋值,当变量名的对象的属性名相同时,才能取到正确的值. */ let {foo,bar}={foo:"aaa",bar:"bbb"}; console.log(foo);//aaa console.log(bar);//bbb //变量名与属性名不相同,必须写成下面这样 */ var {foo:baz}=…
本文的Demo的运行环境为nodeJS, 参考:让nodeJS支持ES6的词法----babel的安装和使用 : 解构赋值是一种表达式, 利用这种新语法, 可以直接从数组或者对象中快速提取值 赋值给不同的变量, 利用这种写法的好处是减少了代码量, 一定程度优化了代码, 也有一点缺点就是阅读代码不再那么直观了. 解构赋值最简单的例子 <script> "use strict"; let [a,b,c] = [1,2,3]; console.log( a +"|&qu…
  前  言 ES6 解构赋值: ES6允许按照一定模式从数组和对象中提取值,然后对变量进行赋值,这被称为解构. 1.1 数组的结构赋值 1.1.1基本用法 JS中,为变量赋值直接指定.例如下面代码: <script type="text/javascript"> var a = 1; var b = 2; var c = 3; </script> 在ES6中可以这样写.例如下面代码: <script type="text/javascript&…
模式匹配:只要等号两边的模式相同,左边的变量就会被赋予对应的值. let [a, b, c] = [1, 2, 3]; 嵌套数组进行解构: let [foo, [[bar], baz]] = [1, [[2], 3]]; foo // 1 bar // 2 baz // 3 let [ , , third] = ["foo", "bar", "baz"]; third // "baz" let [x, , y] = [1, 2…
在线编译器:babel.github 在nongjs中使用 'use strict' let a = ; 运行node : node --harmony_destructuring xxx.js 代码块: 用{}包起来的代码块,比如 if for while 特点:只能在代码块里面使用 var 只有函数作用域,可以重复声明, let const 有块级作用域,不可重复声明 封闭空间 ES5: (function() { ; })(); ES6: { let a = ; } 总结:块级作用域,其实…