【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
工作中JavaScript用到的比较多,打算把JavaScript基础知识好好梳理一下,大家互相探讨学习。
本篇博客希望可以从JavaScript的技术的背景、原理和设计出发,把知识的内容呈现出来。这种形式适用于有体系和源流的知识,比较适合系统学习和理解。
JavaScript诞生与1995年,当时的主要目的之一是处理以前由服务器端语言(如Perl)负责的一些验证操作。在JavaScript之前,必须把表单数据发送到服务器端才能确定用户是否没有填写某个必填域,Netscape Navigator希望通过JavaScript来解决这个问题。想要全面理解和掌握JavaScript,关键在于弄清楚他的本质、历史和局限性。 ————《JavaScript高级程序设计(第三版)》
JavaScript简史
在Web日益流行的同时,人们对客户端脚本语言的需求也越来越强烈,当时就职于Netscape公司的Bredan Erich开始着手计划于1995年2月发布的NetscapeNavigator 2开发一种名为LiveScript的脚本语言————该语言将同时在浏览器和服务器中使用(它在服务器上的名字是liveWire),Netscape和Sun公司建立了一个开发联盟,在发布前夕,Netscape为了搭上媒体热炒的Java的顺风车,临时把LiveScript改名为JavaScript。
由于JavaScript1.0的大获成功,Netsca在Netscape Navigator 3中发布了JavaScript1.1, 微软也在其发布不就后在IE3中发布了JScript的JavaScript实现, 微软在1996年8月进入web领域标志这JavaScript作为一门语言,向前迈进了一大步。
1997年, 以JavaScript1.1为蓝本的建议被提交给了欧洲计算机制造商协会(ECMA, European Computer Manufactures Association),该协会指定TC39技术委员会(TC39, Technical Committee #39)负责“标准化一种通用、跨平台、供应商中立的脚本语言的语义和语法。” 链接, TC39经过数月的努力完成了ECMA-262的新脚本语言的标准。
第二年,ISO/IEC(International Organization for Standardization and International Electrotechnical Commission)也采用了ECMAScript作为标准(即ISO/IEC-16262),自此以后,浏览器开发商就开始致力于将ECMAScript作为各自JavaScrip实现的基础。
JavaScript的实现
虽然JavaScript和ECMAScript经常被人们表达相同的含义,单JavaScript比ECMA-262中规定的多得多,一个完整的JavaScript应该由下列三个不同的部分组成
- 核心(ECMAScript)
- 文档对象模型(DOM)
- 浏览器对象模型(BOM)
ECMAScript
ECMA-262定义的EMCAScript与浏览器没有依赖关系,ECMA定义的制式这么语言的基础,在此基础上可以构建更完善的脚本语言。Web浏览器只是ECMAScript实现可能的宿主环境之一,宿主环境不仅提供基本的ECMAScript实现,同时也会提供该原因的扩展,以便语言与环境之间对接交互,而这些扩展,如DOM,则利用ECMAScript的核心类型和语法提供更多具体的功能,以便实现针对环境的操作,其他宿主环境包括Node, Adobe Flash。
ECMAScript就是对实现该标准规定的各个方面的语言的标书,Javascript实现了EMCAScript, Adobe ActionScript同样也实现了ECMAScript。
文档对象模型(DOM)
DOM是针对XML但经过扩展的HTML应用程序的编程接口。DOM把整个页面映射为一个多层节点结构,HTML页面中的每个组成部分都是某种类型的节点,这些节点又包含不同类型的数据,开发人员通过DOM可以轻松地删除、添加、替换或者修改任何节点。
DOM级别
DOM0级: IE4.0和Netscape Navigator4.0最初支持的DHTML。
DOM1级:(DOM Level1)于1998年10月成为w3c推崇标准。DOM1级由连个模块组成:DOM Core和DOM HTML。DOM Core规定的是如何映射基于XML的文档结构,DOM HTML实在DOM Core的基础上加以扩展,添加了针对HTML的对象和方法。
DOM2级:
DOM3级:
浏览器对象模型(BOM)
开发者使用BOM可以控制浏览器显示页面意外的部分,HTML5致力于把很多BOM功能写入正式规范。
来源:oschina
链接:https://my.oschina.net/u/4254857/blog/3143656