第一章 JavaScript 简介
出现原因
- 开发一种客户端语言,用来处理简单的验证
JavaScript 组成
- 核心(ECMAScript)
- 由 ECMA-262 定义,提供核心语言功能
- ECMAScript 与 Web 浏览器没有依赖关系,Web 浏览器只是 ECMAScript 实现可能的宿主环境之一
- 它规定了这门语言的组成部分:语法、类型、语句、关键字、保留字、操作符、对象
- 文档对象模型(DOM)
- 提供访问和操作网页内容的方法和接口
- DOM 是针对 XML 但经过扩展后用于 HTML 的应用程序编程接口,它把整个页面映射为一个多层节点结构
- 浏览器对象模型(BOM)
- 提供与浏览器交互的方法和接口。
- BOM 没有标准可以遵循,每个浏览器都有自己的实现
第二章 在 HTML 中使用 JavaScript
- 属性
- async:表示应该立即下载脚本,只对外部脚本文件有效
- charset:表示通过 src 属性指定的代码的字符集,很少用
- defer:表示脚本可以延迟到文档完全被解析和显示之后再执行
- language:已废弃
- src:表示包含要执行代码的外部文件
- type:可以看成是 language 的替代属性,表示编写代码使用的脚本语言的内容类型(text/javaScript)
为了避免加载 JavaScript 代码完成前页面是空白的,一般将全部的 JavaScript 引用放在 <body>
元素中页面内容的后面
-
延迟脚本(除了最早的一些浏览器外,已经忽略这个属性)
- 即在
<script>
元素中设置 defer 属性
<script type="text/javascript" defer="defer" src="example.js"></script>
- 脚本会被延迟到整个页面都解析完毕后(浏览器遇到 后)再运行
- 延迟脚本不一定会按照顺序执行,因此最好只包含一个延迟脚本
- defer 属性只适用于外部脚本文件
- 即在
-
异步脚本
- 即在
<script>
元素中设置 async 属性
<script type="text/javascript" async src="example.js"></script>
- 异步脚本不能保证执行顺序,因此需要确保两者之间互不依赖
- 即在
嵌入代码与外部文件
- 外部文件的优点
- 可维护性
- 可缓存
- 适应未来
文档模式
- 最初的两种文档模式:混杂模式、标准模式
- 后又提出:准标准模式
- 混杂模式下,不同浏览器的行为差异非常大,如果不使用某些 hack 技
术,跨浏览器的行为根本就没有一致性可言。 - 对于标准模式,可以通过文档类型开启
<!-- HTML 5 -->
<!DOCTYPE html>
<noscript>
元素
- 用以在不支持 JavaScript 的浏览器中显示替代的内容
- 这个元素可以包含能够出现在文档
<body>
中的任何 HTML 元素(<script>
元素除外)