JS权威指南读书笔记(五)

第十三章 Web浏览器中的JavaScript

1 在Html文档中嵌入客户端4种JS代码方法

a 内联方式,放置在<script>标签之间

b 放置在<script>标签 src 属性指定的外部文件中

c 放置在HTML事件处理程序中

d 放置在URL中,"javascript:" 协议

2 在XHTML中,script标签中内容将被当做其他内容,如果JS代码包含了"<" 或 "&"字符,那么这些字符将被解释成为XML标记。因此,如果要使用XHTML,最好把JS放在一个CDATA部分里:

<script><![CDATA[ js code ]]></script>

3 使用src属性时,script标签之间的任何内容都会忽略。

4 对于内联脚本,指定不能识别的脚本类型,不会尝试显示或执行。对于外联脚本,指定不能识别的脚本类型,那这个脚本会被忽略,并且不会从指定的URL中下载任何内容。

5 script标签可以有defer 和 async属性,如果同时具有两个属性,支持两者的浏览器会遵从async 属性而忽略 defer 属性。

注意,延迟的脚本会按照它们在文档中出现的顺序执行,而异步脚本在它们载入后执行,意味着它们可能无序执行。

6 JS程序执行的时间线:

a 创建Document对象,并开始解析Web页面,添加Element、Text节点到文档中。此时,document.readystate属性的值是 "loading" 。

b 当解析器遇到无async或defer属性script标签时,它把这些元素添加到文档中,然后执行行内或外部脚本。脚本同步执行,并且在脚本下载和执行时,解析器会暂停。这样,脚本可以用document.write() 来把文本插入到输入流中。解析器恢复时,这些文本会成为文档的一部分。同步脚本可以看到它自己的script元素和它们之前的文档内容。

c 当解析器遇到async属性script标签时,它开始下载脚本文本,并解析文档。脚本会在他下载完成后尽快执行,但是解析器没有停下来等它下载。禁止使用document.write(),可以看到自己的script 元素和它之前的所有文档元素,并且可能或干脆不可能访问其他的文档内容。

d 当文档完成解析,document.readyState属性变成 "interactive"。

e 所有有defer属性的脚本,会按照它们在文档里的出现顺序执行。异步脚本可能也会在这个时间执行。延迟脚本能访问整的文档树,禁止使用document.write() 方法。

f 浏览器在Document对象上触发 DOMContentLoaded 事件。这标志着程序执行从同步脚本执行转换到了异步事件驱动阶段。但要注意,这时可能还有异步脚本没有执行完成。

g 当所有其他内容(图片等)载入完成,并且所有异步脚本完成载入和执行,document.readyState 属性改变为 "complete",Web浏览器触发Window对象上的load事件。

h 从此刻起,会调用异步事件,以异步响应用户输入、网络事件、计时器过期等。

7 Web浏览器是Web应用的操作系统,但是Web是一个存在各种差异的环境。(不同的操作系统,不同的浏览器开发商)

8 处理兼容性的方法

a 类库(jQuery等)

b 分级浏览器支持

c 功能测试(if (element.addEventListener) 检测是否支持addEventListener)

d 怪异模式(IE4、5)和标准模式 document.compatMode("CSS1Compat BackCompat")

e 浏览器测试(navigator.userAgent)

9 JS 可访问性的一条重要原则是,设计的代码即使在禁用JS解释器的浏览器中也能正常使用。

10 同源策略:脚本只能读取和所属文档来源相同的窗口和文档的属性,应用于XMLHttpRequest是只允许生成的HTTP请求脚本所属文档的服务器。文档的来源包括协议、主机,以及载入文档的端口。

11 不严格的同源策略

a 使用多个子域情况下,设置Document对象的domain属性一样,就不再受同源策略约束;

b 跨域资源共享(Cross-Origin Resource Sharing),利用新的"Origin" 请求头,和新的"Access-Control-Allow-Origin" 响应头来扩展HTTP;

c 跨文档消息,调用Window对象上的postMessage() 方法,同时监听onmessage事件进行处理。

12 安全性

a 跨站脚本(Cross site scripting)XSS,攻击者向目标Web站点注入HTML标签和脚本。防御:在使用任何不可信的数据来动态创建文档内容之前,要从中移除HTML标签;

b 拒绝服务攻击,访问一个恶意站点,这个站点可能用无限循环或无意义的计算大量占用CPU;

c CSRF( Cross Site Request Forgery ),跨站请求伪造,防御:对于任何重要的请求都需要重新验证用户的身份,或者创建一个唯一的令牌(Token),将其存在服务端的session中及客户端的cookie中,对任何请求,都检查二者是否一致。

第十四章 Window对象

1 由于历史原因,setTimeout和setInterval的第一个参数可以作为字符串传入,指定时间之后,相当于执行eval() 。

2 Document对象有一个URL属性,是文档首次载入(决定不同的document)后保存该文档的URL静态字符串。如果定位到文档中的片段标示符,location对象会做相应的更新,而document.URL属性却不会变。

3 Location对象的toString() 方法返回location.href 属性的值。

4 Location对象的assign() 方法可以使窗口载入并显示你指定的URL中的文档。

5 History对象

a back() 后退

b forward() 前进

c go 接收一个整数参数,可以在历史列表中向前或向后跳过任意多个页。

6 Navigator重要属性

a appName:Web浏览器的全称

b appVersion: 此属性通常以数字开始,并跟着包含浏览器厂商和版本信息的详细信息

c userAgent:浏览器在它的USERAGENTHTTP头部中发送的字符串。

d platform:在其上运行浏览器的操作系统的字符串。

e onLine:表示浏览器当前是否连接到网络。

f geolocation:用于确定用户地理位置信息的接口。

7 Window对象的onerror属性是一个事件处理程序,当未捕获的异常传播到调用栈上时触发。

8 Window对象的open方法返回代表新创建的窗口的Window对象,而且这个新窗口具有opener属性,该苏醒可以打开它的原始窗口。

9 窗体可以用parent属性引用包含它的窗口或窗体的Window对象。

10 iframe元素有contentWindow属性,引用该窗体的Window对象。

时间: 2024-10-06 04:51:21

JS权威指南读书笔记(五)的相关文章

JS权威指南读书笔记(七)

第十七章 事件处理 1 客户端JS程序采用了异步事件驱动编程模型. 2 关于事件的重要定义 a 事件类型(event type) b 事件目标(event target) target === srcElement(IE8及之前版本) c 事件处理程序(event handler ) 当对象上注册的事件处理程序被调用时,可以说浏览器触发(fire trigger)和派发(dispatch)了事件: d 事件对象(event object) e 事件传播(event propagation)两种形

JS权威指南读书笔记(六)

第十五章 脚本化文档 1 文档对象模型(DOM)是表示和操作HTML和XML文档内容的基础API. 2 文档节点的部分层次结构 Text和CDATASection都是characterData的子类型. 3 getElementsByNames() 定义在HTMLDocument类中,而不是Document(文档可能代表HTML也可能代表XML) 类中,所以只针对HTML文档可用. 4 由于历史原因,HTMLDocument类定义了一些快捷属性来访问各种各样的节点.例如:images.forms

JS权威指南读书笔记(二)

第四章 表达式和运算符 1 new调用构造函数的过程 a 创建一个新的空对象 b 设置空对象的_proto_指向构造函数原型prototype c 将这个新对象当做this的值来调用构造函数 d 如果构造函数不返回一个对象值,则返回新对象 2 左值:表示存储在计算机内存的对象. 3 除数为0的运算结果是正无穷大或负无穷大,0/0的结果是NaN. 4 位运算符会将NaN.Infinity和-Infinity都转换为0. 5 in运算符希望它的左操作数是一个字符串或可以转换为字符串,右操作数是一个对

JS权威指南读书笔记(一)

第一章 JavaScript概述 1 JS是一门高端的.动态的.弱类型的编程语言,非常适合面向对象和函数式的编程风格. 第二章 词法结构 1 JS程序是用Unicode字符集编写的. 2 JS是区分大小写的,但是Html并不区分大小写. 3 JS会忽略程序中标识之间的空格,多数情况下,同样会忽略换行符. 4 回车符(\u000D)和换行符(\u000A)在一起被解析为一个单行结束符. 5 空格.换行符和格式控制符可以用在JS的注释.字符串直接量和正则表达式直接量中,但不能用在标识符中. 6 Un

JS权威指南读书笔记(三)

第七章 数组 1 数组的实现是经过优化的,用数字索引来访问数组元素一般来说比访问常规的对象属性要快的多. 2 数组直接量的语法允许有可选的结尾的逗号,故[ ; ; ]只有两个元素而非三个. 3 调用构造函数创建数组 a 调用时没有参数 => 空数组 b 调用时有一个数值参数 => 指定长度的数组 c 显式指定两个或多个数组元素或一个非数值元素 => 参数成为新数组的元素 4 稀疏数组:包含从0开始的不连续索引(即 '索引值' in '数组' 运算返回 false)的数组.可以用Array

JS权威指南读书笔记(四)

第十章 正则表达式 1 正则表达式直接量定义为包含在一对斜杠(/)之间的字符 a /s$/ == new RegExp("s$") 2 直接量字符:所有字母和数字都是按照字面含义进行匹配的,非字母的字符需要通过反斜线(\)作为前缀进行转义. 3 字符类:将直接量字符单独放进方括号内就组成了字符类.一个字符类可以匹配它所包含的任意字符. 转义符\b 具有特殊含义,当用在字符类中,它表示退格符,所以一个元素的字符类[\b]表示一个退格符. 4 重复 5 在待匹配的字符后跟随一个问号(?),

IDA.Pro权威指南 读书笔记

http://www.pediy.com/kssd/pediy12/142766.html 标 题:IDA.Pro权威指南 读书笔记[Made By C_lemon] 作 者:Dstlemoner 时 间:2011-11-14 11:56:17 链 接:http://bbs.pediy.com/showthread.php?t=142766    IDA为反汇编 和逆向破解的 静态分析利器 ! 虽然是利器,但是你不会用的话~那就另当别论了. →     唉.对于刚入门的新手来说,看前人走过的路程

Hadoop权威指南读书笔记

本书中提到的Hadoop项目简述 Common:一组分布式文件系统和通用I/O的组件与接口(序列化.javaRPC和持久化数据结构). Avro:一种支持高效.跨语言的RPC以及永久存储数据的序列化系统. MapReduce:分布式数据处理模型和执行环境,运行于大型商业集群. HDFS:分布式文件系统,运行于大型商用机集群. Pig:一种数据流语言和运行环境,用以检索非常大的数据集.Pig运行在MapReduce和HDFS的集群上. Hive:一个分布式.按列存储的数据仓库.Hive管理HDFS

Android编程权威指南-读书笔记(二)-第一个小程序

Android编程权威指南-读书笔记(二) -第一个小程序 第一个例子介绍 应用名为GeoQuiz.用户通过单击True或False按钮来回答屏幕上的问题,GeoQuiz可即时反馈答案正确与否. 这个例子为我们简单介绍了几个基本组件的使用,以及基本的事件监听.让我们对基本组件的使用和事件的监听有一个基本的了解. 这篇文章分为2个部分,第一部分就是创建简单的UI.第二个部分就是对这个UI增加代码来响应一些操作. (注:所有不明白或者不理解的东西其实都不重要,后面都会有更详细的介绍.) 本章的目标