概述 事件发生以后,会产生一个事件对象,作为参数传给监听函数。浏览器原生提供一个Event对象,所有的事件都是这个对象的实例,或者说继承了Event.prototype对象。 Event对象本身就是一个构造函数,可以用来生成新的实例。 event = new Event(type, options); Event构造函数接受两个参数。第一个参数type是字符串,表示事件的名称;第二个参数opti
概述 Promise 对象是 JavaScript 的异步操作解决方案,为异步操作提供统一接口。它起到代理作用(proxy),充当异步操作与回调函数之间的中介,使得异步操作具备同步操作的接口。Promise 可以让异步操作写起来,就像在写同步操作的流程,而不必一层层地嵌套回调函数。 注意,本章只是 Promise 对象的简单介绍。为了避免与后续教程的重复,更完整的介绍请看《ES6 标准入门》的《P
JSON 格式 JSON 格式(JavaScript Object Notation 的缩写)是一种用于数据交换的文本格式,2001年由 Douglas Crockford 提出,目的是取代繁琐笨重的 XML 格式。 相比 XML 格式,JSON 格式有两个显著的优点:书写简单,一目了然;符合 JavaScript 原生语法,可以由解释引擎直接处理,不用另外添加解析代码。所以,JSON 迅速被接受
RegExp对象提供正则表达式的功能。 概述 正则表达式(regular expression)是一种表达文本模式(即字符串结构)的方法,有点像字符串的模板,常常用来按照“给定模式”匹配文本。比如,正则表达式给出一个 Email 地址的模式,然后用它来确定一个字符串是否为 Email 地址。JavaScript 的正则表达式体系是参照 Perl 5 建立的。 新建正则表达式有两种方法。一种是使用字
Date对象是 JavaScript 原生的时间库。它以国际标准时间(UTC)1970年1月1日00:00:00作为时间的零点,可以表示的时间范围是前后各1亿天(单位为毫秒)。 普通函数的用法 Date对象可以作为普通函数直接调用,返回一个代表当前时间的字符串。 Date() // "Tue Dec 01 2015 09:34:43 GMT+0800 (CST)" 注意,即使带有参数,Date作
Math是 JavaScript 的原生对象,提供各种数学功能。该对象不是构造函数,不能生成实例,所有的属性和方法都必须在Math对象上调用。 静态属性 Math对象的静态属性,提供以下一些数学常数。 Math.E:常数e。 Math.LN2:2 的自然对数。 Math.LN10:10 的自然对数。 Math.LOG2E:以 2 为底的e的对数。 Math.LOG10E:以 10 为底的e的对数。
概述 String对象是 JavaScript 原生提供的三个包装对象之一,用来生成字符串对象。 var s1 = 'abc'; var s2 = new String('abc'); typeof s1 // "string" typeof s2 // "object" s2.valueOf() // "abc" 上面代码中,变量s1是字符串,s2是对象。由于s2是字符串对象,s2.val
概述 Number对象是数值对应的包装对象,可以作为构造函数使用,也可以作为工具函数使用。 作为构造函数时,它用于生成值为数值的对象。 var n = new Number(1); typeof n // "object" 上面代码中,Number对象作为构造函数使用,返回一个值为1的对象。 作为工具函数时,它可以将任何类型的值转为数值。 Number(true) // 1 上面代码将布尔值t
概述 Boolean对象是 JavaScript 的三个包装对象之一。作为构造函数,它主要用于生成布尔值的包装对象实例。 var b = new Boolean(true); typeof b // "object" b.valueOf() // true 上面代码的变量b是一个Boolean对象的实例,它的类型是对象,值为布尔值true。 注意,false对应的包装对象实例,布尔运算结果也是
构造函数 Array是 JavaScript 的原生对象,同时也是一个构造函数,可以用它生成新的数组。 var arr = new Array(2); arr.length // 2 arr // [ empty x 2 ] 上面代码中,Array构造函数的参数2,表示生成一个两个成员的数组,每个位置都是空值。 如果没有使用new,运行结果也是一样的。 var arr = new Array(2
概述 JavaScript 原生提供Object对象(注意起首的O是大写),本章介绍该对象原生的各种方法。 JavaScript 的所有其他对象都继承自Object对象,即那些对象都是Object的实例。 Object对象的原生方法分成两类:Object本身的方法与Object的实例方法。 (1)Object对象本身的方法 所谓“本身的方法”就是直接定义在Object对象的方法。 Object.p
JavaScript的异步执行 概述 回调函数 事件监听 发布/订阅 异步操作的流程控制 串行执行 并行执行 并行与串行的结合 Promise对象 简介 Promise接口 用法辨析 Promises对象的实现 实例:Ajax操作 小结 参考链接 Promise是JavaScript异步操作解决方案。介绍Promise之前,先对异步操作做一个详细介绍。 JavaScript的异步执行 概述 Jav
浏览器实现 console对象的方法 log(),info(),debug() warn(),error() table() count() dir() assert() time(),timeEnd() timeline(),timelineEnd(),timeStamp() profile(),profileEnd() group(),groupend(),groupCollapsed() t
概述 history.pushState(),history.replaceState() history.state属性 popstate事件 参考链接 概述 浏览器窗口有一个history对象,用来保存浏览历史。比如,该窗口先后访问了三个地址,那么history对象就包括三项,length属性等于3。 history.length // 3 history对象提供了一系列方法,允许在浏览历史之
概述 window对象的属性 window.name属性 window.innerHeight属性,window.innerWidth属性 window.pageXOffset属性,window.pageYOffset属性 iframe元素 Navigator对象 screen对象 window对象的方法 URL的编码/解码方法 window.getComputedStyle方法 window.m