第 1 章 JavaScript 简介
1. JavaScript历史
- Netscape Navigator 又称导航者浏览器(!浏览器,简称NN),网景公司开发
- NN2版本开发了LiveScript,发布前,为了蹭Java热度,改为JavaScript,NN3发布了JS1.1
- 紧接着,微软在IE3版本,推出了JScript
- 为了统一,ECMA指定TC39推出了新脚本语言的标准-ECMAScript(ECMA-262定义)
2.JavaScript组成
ECMA-262规定了ECMAScript的组成部分:语法、类型、语句、关键字、保留字、操作符、对象。
版本主要更迭:
ES1,ES2本质与NN的JS1.1相同,只做修改和初期统一;
ES3才是第一次真正修改,涉及字符串处理,错误定义和数值输出,新增了正则表达式,新控制语句,try-catch异常处理;
ES4进行了全面修订以适应web开发需求,修订包含了强类型变量,新语句,新数据结构,真正的类和经典继承,还定义了新数据交互方式,因修订后标准跨度过大,在发布前被放弃;
2009年,中间版本ES3.1 在发布后又为第五版 ES5,发布了新功能原生JSON对象,继承的方法和高级属性定义,还有严格模式;
2011年,ES5.1发布即为现在的ISO国际标准;
2015年,ES6集合ES4部分设想,补全了ES5的缺陷。
ES6新特性的浏览器支持:
2.2 文档对象类型DOM
DOM(Document Object Model)是针对XML,扩展之后用于HTML的API。DOM映射页面为一个多层节点结构,开发通过DOM获取了页面控制权,可以修改任何节点。
DOM提供访问和操作网页内容的方法和接口。
2.3 浏览器对象模型BOMBOM(Browser Object Model),开发可以使用BOM控制浏览器显示页面以外的部分。理论上,BOM只处理浏览器窗口和框架,习惯性将针对浏览器的JS扩展也算BOM的一部分。
一些扩展:弹出窗口,移动、缩放、关闭浏览器窗口,浏览器navigator对象,location对象,screen对象,cookie支持,自定义对象(XMLHTTPRequest和IE的ActiveXObject)。
BOM提供与浏览器交互的方法和接口。
第 2 章 在HTML中使用JavaScript
1.元素
HTML4.01 为<script>定义了6个属性:
async,charset, defer, language(已废弃),src, type
引入方式:页面直接嵌入,外部引入js文件
嵌入式代码不要出现</script>,根据解析规则会直接结束script标签,可以转义 \ /
引入的外部代码,不设置async与defer属性,浏览器会按照元素在页面中出现的先后顺序依次进行解析。
一般外部引入文件,放</body>标签内底部
defer延迟脚本:
设置defer属性,脚本会被延迟到整个页面都解析完毕之后再运行,立即下载,延迟执行。
defer脚本不一定会在DOMContentLoaded事件触发前执行。
async异步脚本:
设置async属性,异步加载页面其他内容,不等待脚本下载执行。
async脚本一定会在页面的load事件前执行,但可能在DOMContentLoaded事件前后执行。
2.文档模式
IE5.5引入了文档模式的概念,使用DOCTYPE切换,最初两种为混杂模式与标准模式
目前通用标准模式为<--HTML 5-->
<!DOCTYPE html>