标签:des style blog http io ar os 使用 sp
“要想全面理解和掌握JavaScript,关键在于弄清楚它的本质,历史和局限性”
JavaScript诞生于1995年,当时Web日益流行,因为网速太慢,为了减轻用户负担,减少请求服务端验证次数,当时走在技术革新最前端的Netscape(网景)公司,决定开发一种客户端语言,用来处理简单的验证。可以说JavaScript的诞生只是为了减轻服务器和负担,减少用户等待时间。但是今日,JavaScript的功能已不仅仅限于此了。
当时就职于Netscape公司的布兰登·艾克(Brendan·Eric),开始为Netscape Navigator开发一种名为LiveScript的语言,后来随着Sun和Netscape的合作,为了搭上媒体热炒Java的顺风车,临时把LiveScript改名为JavaScript,JavaScript虽然和Java有相似之处,但是并不是Java的子集。JavaScript的主要设计原则是基于Self和Scheme.
随着JavaScript获得成功,Netscape公司随即在Netscape Navigator 3发布了JavaScript1.1。随着Web的受关注,Microsoft向Spyglass公司买下Spyglass Mosaic的授权,发布了IE浏览器的第一本版本—Internet Explorer 1,当时Netscape和Microsoft是主要的竞争者,并且都以飞速更新浏览器版本和增加新功能,不过Netscape Navigator仍然是其中的王者,市占率超过八成。Microsoft在IE3中也加入了名为JScript的JavaScript实现(主要是为了避免有关授权的问题)并且,自此Microsoft 的Internet Explorer市占率开始紧追Netscape Navigator。1997年,Internet Exploer 4发布,IE4包括了不少新功能,提高了对W3C标准的支持。Netscape和Microsoft的竞争引发的浏览器大战的第一回合。
(1997年,部分Netscape员工前往IE4发布会现场,推到代表IE的E标志,树立了Mozilla的恐龙,并协商Netscape 72,Microsoft 18,代表当时的市占率。)浏览器大战时间表:http://upload.wikimedia.org/wikipedia/commons/7/74/Timeline_of_web_browsers.svg
当时Microsof(JScript)t和Netscape(JavaScript)还有CEnvi(ScriptEase)并没有统一JavaScript的标准,几种不同版本加重了业内的担心,随后JavaScript的标准化被提上日程。
1997年,以JavaScript1.1的蓝本被提交给欧洲计算机制造商协会(ECMA,Europen Computer Manufactures Association)该协会指定39号技术委员会指定相关标准“标准化一种通用,跨平台,供应商中立的脚本语言的语法和语义”。TC39由来自Netscape,Sun,Microsoft,Borland及其他关注脚本语言发展的公司程序员组成,他们经过数月的努力完成了ECMA262-定义一种名为ECMAScript的新脚本语言的标准。第二年,ISO/IEC也采用了ECMAScript作为标准,浏览器开始实现以ECMAScript为基础的JavaScript。
ECMAScript和Web浏览器没有依赖关系,ECMAScript也可以在其他宿主环境中实现,包括Node,Adobe Flash。我们常见的Web浏览器只是主要的宿主环境,宿主环境不仅仅提供ECMAScript的实现,还包括一些扩展接口,以便环境和语言实现对接交互。
ECMA只是主要规定了:
ECMAScript就是对实现标准规定的各个方面内容的语言描述。JavaScript实现了ECMAScript,AdobeScript也实现了ECMAScript。
ECMAScript6标准预期将于2015年中旬发布,ECMAScript6的代号叫ECMAScript Harmony或ES.next,预期ECMAScript6将包括多个新的概念和语言特性,Harmony的意思是“和谐”.ECMAScript6的草案已经完成了,接下来增加的主要是ECMAScript7,大家可以查阅http://www.nczonline.net/blog/2014/06/03/my-ecmascript-7-wishlist/ 《JavaScript高级程序设计》作者的ES7希望加入的内容。
各大浏览器对于ECMAScript5的兼容,可以查阅:http://kangax.github.io/compat-table/es5/.
文档对象模型(DOM,document object model)是针对XML但经过扩展用于HTML的应用程序编程接口(application programming interface).DOM并不是针对JavaScript的,很多语言也实现了DOM。不过DOM已经成为JavaScript的重要一部分。DOM源于当时的浏览器大战,Netscape要和Microsoft Internet Explorer一绝生死,又是都给浏览器赋予大量新的功能,包括VBScript,ActiveX和DHTML(Dynamic HTML,无需重新加载网页,从而改变网页外观和结构),致使不少网页不能同时在Netscape Navigator和Internet Explorer显示正常,使Web开发者不得不写两套不同的内容。如果不对他们进行控制,就会出现两强割据的局面。负责指定Web通信标准的W3C(World Wide Web Consortium)联盟,开始标准化DOM。
其他DOM标准包括:除了DOM核心和DOM HTML扩展之外,另外几种语言还发布了只针对自己的DOM扩展,下面都是基于XML的,每种都添加了与其相关的新方法和新接口:
还有一些,包括Mozilla的XUL(XML User Interface Language,XML界面语言),但是只有上面几种符合W3C标准。
Web浏览器对于DOM的支持,可以查询:http://www.webbrowsercompatibility.com/dom/desktop/
Internet Explorer3和Netscape Navigator3有一个共同的特色,那就是支持访问和操作浏览器接口的浏览器对象模型(BOM Broswer Object Model).开发人员使用BOM可以控制页面之外的部分,但是它作为JavaScript重要的一部分,却没有标准。不过这个问题最终在HTML5得到解决,HTML5试图把相关的BOM纳入规范。HTML5也于今天发布,不过相关的HTML5.1还在指定中。
BOM只处理窗口和框架,下面是一些扩展:
BOM虽然也有一些事实标准,但是各个浏览器的实现都是不一致的。
依靠跨平台,容易上手等优势,JavaScript已经成为最受欢迎的编程语言之一。随着引擎如V8和框架如Node.js的发展和事件驱动和异步IO等特性,JavaScript越来越被用来作为服务端开发。JavaScript的未来推荐看一个视频,名字为2050年的JavaScript。
JavaScript是一种专为与网页交互而设计的脚本语言。为了减少服务端请求和减少用户等待时间,当时的浏览器霸主Netscape Navigator走在技术革新的前面。它的员工布兰登在1995年发布了JavaScript语言,后来Microsoft进入浏览器领域,也加入名为JScript的实现,为了标准化JavaScript,ECMA T39指定了语法核心标准。叫ECMAScript或ECMA-262定义。这两者和JavaScript的联系只是规范了相关的核心语法功能,JavaScript的实现还包括BOM和DOM两个重要部分,浏览器对ECMAScript第三版支持大体不错,对于第五版的标准支撑程度也越来越多。对于DOM,各家支持的程度都差不多,对已经正式纳入HTML5标准的BOM来说,现在各家浏览器的实现还是因浏览器而已。现在市场上五个主要浏览器是(IE , Firefox(Netscape的继承人),Chrome , Safari , 和 Oprea)[桌面端]。
标签:des style blog http io ar os 使用 sp
原文地址:http://www.cnblogs.com/letitgo/p/4154544.html