重读《JavaScript 高级程序设计》-1

346 阅读3分钟


第 1 章 JavaScript 简介

1. JavaScript历史

  • Netscape Navigator 又称导航者浏览器(!浏览器,简称NN),网景公司开发
  • NN2版本开发了LiveScript,发布前,为了蹭Java热度,改为JavaScript,NN3发布了JS1.1
  • 紧接着,微软在IE3版本,推出了JScript
  • 为了统一,ECMA指定TC39推出了新脚本语言的标准-ECMAScript(ECMA-262定义)

2.JavaScript组成


2.1 核心ECMAScript

   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 浏览器对象模型BOM

BOM(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>