摘要:
动态集合是指DOM结构的变化能够自动反映到所保存的对象中,相应的静态集合是指DOM结构的变化不会自动反映到所保存的对象中 NodeList NodeList实例对象是一个类数组对象,它的成员是节点对象。childNodes和querySelectorAll()方法的返回值都是NodeList实例对象 阅读全文
摘要:
若无特殊说明,DOM篇的所有文章适用于IE9+等现代浏览器 概述 DOM是JavaScript操作网页的接口,全称为文档对象模型。它的作用是将网页转成一个JS对象,从而可以使用JS对网页进行各种操作 浏览器会根据DOM模型,将HTML文档解析成一系列的节点,再有这些节点组成一个树状结构。节点是DOM 阅读全文
摘要:
概述 async函数是Generator函数的语法糖,async函数就是将 Generator 函数的星号( )替换成async,将yield替换成await 使用Generator 函数,依次读取两个文件 使用Async 函数,依次读取两个文件 run()执行器在上一篇文章 "Promise和异步 阅读全文
摘要:
代理和反射 代理 代理(Proxy)是一种可以拦截并改变底层JS引擎操作的包装器,在新语言中通过它暴露内部运作的对象,从而让开发者可以创建内建的对象 通过new Proxy()可以创建目标对象的代理,它虚拟化了目标,所以两者看起来功能一致 代理可以拦截JS引擎内部目标的底层对象操作,这些底层操作被拦 阅读全文
摘要:
前言 JS引擎是基于单线程(Single threaded)事件循环的概念构建的,同一时刻只允许一个代码块在执行,所以需要跟踪即将运行的代码,那些代码被放在一个任务队列(job queue)中,每一段代码准备执行时,都会被添加到任务队列。每当JS引擎中的一段代码结束执行,事件循环(event too 阅读全文
摘要:
ES5中的“类” ES5中没有类的概念,要想实现和类相似的功能,通常是创建一个构造函数,然后把类方法赋值给构造函数的原型。许多模拟类的JS库都是基于这个模式进行开发。 类的声明 在ES6中可以用class关键字声明一个类,关键字后面紧跟着类的名字,其他部分语法类似对象字面量,但是各元素之间不需要逗号 阅读全文
摘要:
平常对数据进行迭代时使用较多的是循环语句,这就要求必须初始化一个变量,记录每一次迭代在数据集合中的位置。ES6的出现,让我们可以通过程序化的方式用迭代器对象返回迭代过程中集合中的每一个元素,从而极大简化数据操作。新的数组方法和新的集合类型(如Set集合、Map集合)都依赖迭代器实现,其他的如for/ 阅读全文
摘要:
修饰器(Decorator)是一个函数,用来修改类的行为。 示例中的 就是一个修饰器,修改了Person类的行为,为其添加了一个静态属性isTestable 修饰器对类的行为的改变,发生在代码编译阶段而非运行阶段。修饰器的本质其实就是编译时执行的函数 示例中修饰器的行为类似下面这样 参数 修饰器的第 阅读全文
摘要:
解构是一种打破原有数据结构,将其拆分为更小部分的过程 对象解构 在ES5中,开发者们为了从对象中获取特定数据并赋值给变量,通常是这样做 在ES6中,利用解构功能,可以这样做 类似于对象字面量语法的形式,只不过放到了赋值操作符的左边 可以使用解构功能为变量赋值,它会覆盖之前的变量值 注意: 一定要用一 阅读全文
摘要:
在ES6之前,应用程序中的每一个js文件都共享一个全局作用域,随着应用程序越来越复杂,这样会很容易造成命名冲突和安全问题。为了解决作用域的问题,使其显得更有序,ES6引入了模块。 概念 模块是自动运行在严格模式下并且没有办法退出运行的JS代码。在模块顶部创建的变量不会自动添加到全局作用域,它只存在于 阅读全文