第1章 JavaScript 简介
1.1 JavaScript 组成:
核心(ECMAScript) + 文档对象模型(DOM) + 浏览器对象模型(BOM)
1.1.1 ECMAScript
ECMAScript 规定了以下内容:
语法、类型、语句、关键字、保留字、操作符、对象。
ECMAScript 就是对实现该标准规定的各个方面内容的语言描述。
1.1.2 文档对象模型(DOM)
DOM——针对XML 但将扩展用于HTML的应用程序编程接口(API)。
DOM把整个页面映射为一个多层节点结构,页面中的每个组成部分都是某种类型的节点,这些节点又包含着不同类型的数据。
借助 DOM 提供的 API,可以轻松自如地删除、添加、替换、修改任何节点。
1.1.3 浏览器对象模型(BOM)
BOM —— 可以访问和操作浏览器对象模型。
根本上讲,BOM 只处理浏览器窗口和框架,但习惯上把所有针对浏览器的 JavaScript 扩展都算作 BOM 的一部分。如:
弹出新浏览器窗口;
移动、缩放和关闭浏览器窗口的功能;
提供浏览器详细信息的 navigator 对象;
提供浏览器所加载页面的详细信息的 location 对象;
提供用户显示器分辨率详细信息的 screen 对象;
对 cookies 的支持;
像 XMLHttlRequest 和 IE 的 ActiveXObject 这样的自定义对象。
第2章 在 HTML 中使用 JavaScript
2.1 <script>元素
src 属性:可选,当加载外部 js 文件时,此属性必需;可以指向当前页面所在域之外的某个域中的完整 URL 。
type 属性:可选,写代码使用的脚本语言的内容类型,默认 text/javascript。
async 属性: 可选,立即下载脚本,但不应妨碍页面中的其他操作,如下载其他资源或等待加载其他脚本。只对外部脚本文件有效。
defer 属性:可选。立即下载,延迟执行。表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部文件有效。defer='defer'。
无论如何包含代码,只要不存在 defer 和 async 属性,浏览器都会按照<script>元素在页面中出现的先后顺序对他们依次进行解析。
2.1.1 标签的位置
按传统做法,所有 <script> 元素都应该放在 <head> 元素中,但由于 <script> 元素顺序加载,为防止浏览器在呈现页面时出现延迟,一般将 JavaScript 引用放在 <body> 元素中页面内容的后面。视觉上,浏览器窗口显示空白页面的时间缩短,而感觉打开页面的速度加快。
2.2 嵌入代码与外部文件
建议使用外部文件来包含 JavaScript 代码,优点如下:
可维护性好;可缓存;适应未来。
2.3 文档模式
文档模式是通过使用文档类型(doctype)切换实现的。
混杂模式——IE 会按IE5.5 来渲染。不同浏览器在此模式下,行为差异非常大。若不适用 hack 技术,跨浏览器的行为根本无一致性可言。
标准模式——按标准进行渲染。
2.4 <noscript>元素
所有浏览器都支持 <noscript>元素,包含<noscript>元素的只有下列情况下才会显示出来:
浏览器不支持脚本或浏览器支持脚本但脚本被禁用。