随笔分类 - 红皮书系列
摘要:一般性变化 常量 用const关键字声明常量,声明的变量在初始赋值后,就不能进行修改了,如下代码: 块级作用域及其他作用域 函数 剩余参数与分布参数 剩余参数的语法是三个点后跟一个标识符,如下例子: 分布参数:可以向函数中传入一个数组,然后数组中的元素会映射到函数的每个参数上。如下代码: 以上代码跟
阅读全文
摘要:requestAnimationFrame() 大多数电脑显示器的刷新频率60HZ,大概相当于每秒钟重绘60次。因此,最平滑动画的最佳循环间隔是1000ms/60,约等于17ms。 mozRequestAnimationFrame() mozRequestAnimationFrame()方法接收一个
阅读全文
摘要:高级函数 安全的类型检测 在任何值上调用Object原生的toString()方法,都会返回一个[object NativeConstructorName]格式的字符串。每个类在内部都有一个[[Class]]属性,这个属性就指定了上述字符串中的构造函数名。 作用域安全的构造函数 作用域安全的构造函数
阅读全文
摘要:跨文档消息传递 跨文档消息传递(cross-document messaging),有时候简称为XDM,指的是在来自不同域的页面间传递消息。例如,www.wrox.com域中的页面与位于一个内嵌框架中的p2p.wrox.com域中的页面通信。 XDM的核心是postMessage()方法。在HTML
阅读全文
摘要:基本用法 要使用<canvas>元素,必须先设置其width和height属性,指定可以绘图的区域大小。出现在开始和结束标签中的内容是后备信息,如果浏览器不支持<canvas>元素,就会显示这些信息。如下例子: 与其它元素一样,<canvas>元素对应的DOM元素对象也有width和height属性
阅读全文
摘要:表单的基础知识 在HTML中,表单是由<form>元素来表示的,而在JS中,表单对应的是HTMLFormElement类型。HTMLFormElement继承了HTMLElement,因而与其它HTML元素具有相同的默认属性。不过HTMLFormElement也有下列独有的属性和方法。 accept
阅读全文
摘要:事件流 事件冒泡 IE的事件流叫做事件冒泡,即事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的节点(文档)。如下代码: 如果你点击了上面的div元素,那么这个click事件会按照如下顺序传播: (1)<div> (2)<body> (3)<html> (4)document 所有现代浏览
阅读全文
摘要:DOM1级主要定义的是HTML和XML文档的底层结构。DOM2级和DOM3级在这个结构基础上引入了更多的交互能力,也支持更高级的XML特性。为此DOM2级和DOM3级分为了很多的模块(模块直接具有某种关联),分别描述了DOM的某个非常具体的子集。这些模块如下: DOM2级核心:在1级核心基础上构建,
阅读全文
摘要:选择符API querySelector()方法 querySelectorAll()方法 HTML5 与类相关的扩充 1.getElementsByClassName()方法该方法可以通过document对象及所有HTML元素调用该方法。 焦点管理 HTML5也添加了辅助管理DOM焦点的功能。首先
阅读全文
摘要:Node类型 nodeType以下是一些重要的nodeType的取值:1: 元素element2: 属性attr3: 文本text8: 注释comments9: 文档document nodeName,nodeValue 节点关系 childNodes: 每个节点都有一个childNodes属性,其
阅读全文
摘要:能力检测 在编写代码之前先检测特定浏览器的能力。例如,脚本在调用某个函数之前,可能要先检测该函数首付存在。这种检测方法将开发人员从考虑具体的浏览器类型和版本中解放出来,让他们把注意力集中到相应的能力是否存在上。能力检测无法精确地检测特定的浏览器和版本。 怪癖检测 怪癖实际上是浏览器实现中存在的bug
阅读全文
摘要:BOM(浏览器对象模型)提供了很多对象,用于访问浏览器的功能,这些功能与任何网页内容无关。 window对象 全局作用域 定义全局变量与在window对象上直接定义属性还是有一点差别:全局变量不能通过delete操作符删除,而直接在window对象上的定义的属性可以。 窗口关系及框架 window.
阅读全文
摘要:递归 但是如果代码是在严格模式下开发: 结果:Uncaught TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the argument
阅读全文
摘要:面向对象的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象。 理解对象 创建自定义对象的最简单的方法就是创建一个Object的实例,然后再为它添加属性和方法。例如: 同样上面的例子可以通过对象字面量语法写成如下: 属性类型 ECMAScript中有两种属性:数
阅读全文
摘要:Object类型 创建object实例方法有两种。第一种方法使用new操作符后跟object构造函数。如下: 第二种方法使用对象字面量表示法。如下: Array类型 检测数组 使用instanceof操作符: ECMAScript5新增加Array.isArray()方法。这个方法的目的是最终确定某
阅读全文
摘要:基本类型和引用类型的值 ECMAScript变量可能包含两种不同数据类型的值:基本类型值和引用类型值。基本类型值指的是简单的数据段,而引用类型的值指那些可能有多个值构成的对象。 动态的属性 这说明只能给引用类型值动态添加属性。 复制变量值 num1中保存的值是5.当使用num1的值来初始化num2时
阅读全文
摘要:数据类型 ECMAScript中有5种简单数据类型(也称为基本数据类型):undefined,null,boolean,number和string。 typeof typeof null会返回“object”。因为特殊值null被认为是一个空的对象引用。 undefined undefined类型只
阅读全文
摘要:script元素 向html页面中插入js的主要方法就是使用<script>元素。使用<script>元素的方式有两种:直接在页面中嵌入js代码和包含外部js文件。直接在页面中嵌入js代码如下: 外部js文件引入方式: 延迟脚本 defer <script>标签定义了defer属性。这个属性的用途是
阅读全文
摘要:javascript从一个简单的输入验证器发展成为一门强大的编程语言,完全出乎人们的意料。 javascript实现一个完整的javascript实现应该由下列三个不同的部分组成:1:核心(ECMAScript)2:文档对象模型(DOM)3:浏览器对象模型(BOM) 文档对象模型是针对XML但经过扩
阅读全文