摘要: 模块功能主要由两个命令构成:export和import。export命令用于暴露模块的对外接口,import命令用于引入其他模块提供的接口。 export命令 一个模块就是一个独立的文件。该文件内部的所有变量,外部无法获取。要想外部能够读取该模块内的变量,必须使用export关键字输出该变量。如下代 阅读全文
posted @ 2017-08-28 09:15 webLion200 阅读(236) 评论(0) 推荐(0)
摘要: Class的基本语法 ES5中,生成实例对象的传统方式是通过构造函数。 function Point(x, y) { this.x = x; this.y = y; } Point.prototype.toString = function () { return '(' + this.x + ', 阅读全文
posted @ 2017-08-22 14:44 webLion200 阅读(457) 评论(0) 推荐(0)
摘要: iterator-generator 遍历Array可以采用下标循环,遍历Map和Set就无法使用下标。为了统一集合类型,ES6标准引入了新的iterable类型,Array、Map和Set都属于iteratore类型。 所有的iterator对象都有next()方法,会返回一个结果对象。该结果对象 阅读全文
posted @ 2017-08-19 17:13 webLion200 阅读(702) 评论(0) 推荐(0)
摘要: Set Set可以看作是一组key的集合,但不存储value.由于key是不重复的,所以在Set中,没有重复的key。 Set本身就是一个构造函数,所以可使用new来创建Set数据。要创建一个Set,需要提供一个Array作为输入,或直接创建一个空Set. var s = new Set(); va 阅读全文
posted @ 2017-08-14 22:07 webLion200 阅读(153) 评论(0) 推荐(0)
摘要: 何为Symbol ES5中对象的属性名都是字符串,容易造成属性名的冲突。也就是说,当我们在调用别人的对象的同时,又想为这个对象添加一个新的方法,这个新的方法名字就容易与原对象中已有的方法名冲突。ES6引入Symbol,就是为了解决这样的问题。 Symbol是ES6新添加的一个基本数据类型。所以在ES 阅读全文
posted @ 2017-08-12 15:31 webLion200 阅读(484) 评论(0) 推荐(0)
摘要: 解构赋值的作用 解构赋值允许你使用类似数组或对象字面量的语法将数组和对象的属性赋给各种变量。 对象的解构 在赋值语句的左侧使用了对象字面量,即key let node = { type: "Identifier", name: "foo" }; let { type, name } = node; 阅读全文
posted @ 2017-08-11 16:24 webLion200 阅读(264) 评论(0) 推荐(0)
摘要: 背景 javascript是基于单线程事件循环的概念构建的,同一时刻只允许一个代码块执行。 js引擎同一时刻只能执一个代码块,所以需要跟踪即将运行的代码。代码被放到一个任务队列中,每当一段代码准备执行时,都会被添加到任务队列中。当一段代码结束执行,事件循环会执行队列中的下一个任务。 然而,浏览器的网 阅读全文
posted @ 2017-08-10 21:17 webLion200 阅读(213) 评论(0) 推荐(0)