不得不学的js
在前端打杂有些日子了,渐渐明白js大法还是要好好学习的。所以还是决定先不看现下流行的框架了,回头把js好好学习梳理一下。于是重新拿起尼古拉斯的《Javasript高级程序设计》,静下心来好好研究。为了让自己理解得深刻一些,我决定着手整理自己对此书的理解和笔记。下面进入正题把!
走一遭必备发展历史课
1995:JavaScript诞生,主要目的是为了让表单数据在发送到服务器之前就得到验证;
1996:IE加入了JavaScript实现JScript;
1997:Ecma的TC39小组制定脚本语言标准ECMAScript;
1998:ISO/IEC采用ECMAScript规范,从此,各浏览器制造商也都将其作为自己JS实现的标准。
1998:W3C着手规划DOM规范。
JS和ECMAScript的关系
ECMAScript是由TC39小组制定的规则,是对实现它规定的各方面内容的语言的描述,它规定了下列组成部分:语法,类型,语句,关键字,保留字,操作符和对象。
web浏览器是ECMAScript的宿主环境之一,为它提供了规则的实现,以及提供该语言的扩展(方便语言与环境之间的交互对接)。JS是ECMAScript的实现,Adobe ActionScript也实现了它,所以说,ECMAScript与web浏览器没有关系。
完整的JS实现包含ECMAScript(核心)、DOM(文档对象模型)和BOM(浏览器对象模型)。
DOM是针对XML,经扩展后用于HTML的API(应用程序编程接口)。它将HTML映射为树形图(多层节点结构),通过这个树形图和DOM提供的API,我们可以控制页面的结构和内容,完成节点的增删改查等操作。“页面中的每个组成部分都是某种类型的节点,这些节点又包含着不同类型的数据。”
BOM是支持可以访问和操作浏览器窗口的浏览器对象模型,BOM的功能没有相关标准,直到HTML5着力于将BOM功能写入正式规范。BOM的基本功能就是处理浏览器窗口和框架,同时其他与浏览器相关的js扩展也算作它的一部分,包括:
navigator对象(提供浏览器详细信息);
location对象(提供浏览器所加载的页面的详细信息);
screen对象(提供用户显示器分辨率详细信息);
XMLHttpRequest/ActiveXObject对象;
弹出、移动、缩放、关闭浏览器的功能;
支持cookies。
来一波看本书要知道的术语
ECMA(European Computer Manufacturer’s Association)欧洲计算机制造商协会
W3C(World Wide Web Consortium)万维网联盟
DOM(Document Object Model)文档对象模型
BOM(Browser Object Model)浏览器对象模型
XML(Extensible Markup Language)可扩展标记语言
XSLT(Extensible Stylesheet Language Transformations)可扩展样式表语言转换
CORS(Cross-Origin Resource Sharing)跨来源资源共享
ISO/IEC(International Organization for Standardization and International Electrotechnical Commission)国标标准化组织和国际电工委员会
备注
本文系学习JS的笔记,主要参考文档:《Javasript高级程序设计》第三版。