JavaScript(简介)【Javascript历史】

学习一门知识应该了解其背景,不少人认为会用就行,起初我也是这么认为的,但后来才知道对起源的了解也很必要,从事javascript开发5年,今天开始总结一些笔记,分享下。javascript

一.什么是JavaScriptjava

 

JavaScript是一种具备面向对象能力的、解释型的程序设计语言。更具体一点,它是基于对象和事件驱动并具备相对安全性的客户端脚本语言。由于他不须要在一个语言环境下运行,而只须要支持它的浏览器便可。它的主要目的是,验证发往服务器端的数据、增长Web互动、增强用户体验度等。程序员

 

二.JavaScript特色编程

 

松散性windows

JavaScript语言核心与CC++Java类似,好比条件判断、循环、运算符等。但,它倒是一种松散类型的语言,也就是说,它的变量没必要具备一个明确的类型。数组

 

对象属性浏览器

JavaScript中的对象把属性名映射为任意的属性值。它的这种方式很像哈希表或关联数组,而不像C中的结构体或者C++Java中的对象。安全

 

继承机制服务器

JavaScript中的面向对象继承机制是基于原型的,这和另一种不太为人所知的Self语言很像,而和C++以及Java中的继承大不相同。iphone

 

三.JavaScript历史

 

大概在1992年,有一家公司Nombas开发一种叫作C--(C-minus-minus,简称Cmm)的嵌入式脚本语言。后应以为名字比较晦气,最终更名为ScripEase。而这种能够嵌入网页中的脚本的理念将成为因特网的一块重要基石。

 

1995年,当时工做在Netscape(网景)公司的布兰登(Brendan Eich)为解决相似于“向服务器提交数据以前验证”的问题。在Netscape Navigator 2.0Sun公司联手开发一个称之为LiveScript的脚本语言。为了营销便利,以后改名为JavaScript(目的是在Java这课大树下好乘凉)

 

由于JavaScript 1.0如此成功,因此微软也决定进军浏览器,发布了IE 3.0 并搭载了一个JavaScript的克隆版,叫作JScript(这样命名是为了不与Netscape潜在的许可纠纷),而且也提供了本身的VBScript

 

在微软进入后,有3种不一样的JavaScript版本同时存在:Netscape Navigator 3.0中的JavaScriptIE中的JScript以及CEnvi中的ScriptEase。与C和其余编程语言不一样的是,JavaScript并无一个标准来统一其语法或特性,而这3种不一样的版本偏偏突出了这个问题。随着业界担忧的增长,这个语言标准化显然已经势在必行。

 

1997年,JavaScript 1.1做为一个草案提交给欧洲计算机制造商协会(ECMA)。第39技术委员会(TC39)被委派来“标准化一个通用、跨平台、中立于厂商的脚本语言的语法和语义”(http://www.ecma-international.org/memento/TC39.htm)。由来自NetscapeSun、微软、Borland和其余一些对脚本编程感兴趣的公司的程序员组成的TC39锤炼出了ECMA-262,该标准定义了叫作ECMAScript的全新脚本语言。

 

虽然网景开发了JavaScript并首先提交给ECMA标准化,但因计划改写整个浏览器引擎的缘故,网景晚了整整一年才推出“彻底遵循ECMA规范”的JavaScript1.3。而微软早在一年前就推出了“彻底遵循ECMA规范”的IE4.0。这致使一个直接恶果:JScript成为JavaScript语言的事实标准。

 

在接下来的几年里,国际标准化组织及国际电工委员会(ISO/IEC)也采纳ECMAScript做为标准(ISO/IEC-16262)。今后,Web浏览器就开始努力(虽然有着不一样程度的成功和失败)将ECMAScript做为JavaScript实现的基础。

 

JScript成为JavaScript语言的事实标准,加上Windows绑定着IE浏览器,几乎占据所有市场份额,所以,1999年以后,全部的网页都是基于JScript来开发的。而JavaScript1.x变成可怜的兼容者。

 

网景在微软强大的攻势下,1998年全面溃败。但,星星之火能够燎原。同年成立Mozilla项目中Firefox(火狐浏览器)在支持JavaScript方面无可比拟,在后来的时间里一步步蚕食IE的市场,成为全球第二大浏览器。

 

Google Chrome,又称Google浏览器,是一个由Google(谷歌)公司开发的开放原始码网页浏览器。他以简洁的页面,极速的浏览,一举成为全球第三大浏览器。随着移动互联网的普及,嵌有Android系统的平板电脑和智能手机,在浏览器这块将大有做为。

 

Safari浏览器是苹果公司各类产品的默认浏览器,在苹果的一体机(iMac)、笔记本(Mac)MP4(ipod)iphone(智能手机)ipad(平板电脑),而且在windowsLinux平台都有相应版本。目前市场份额全球第四,但随着苹果的产品不断的深刻人心,具备称霸之势。

 

Opera的全球市场份额第五,2%左右。它的背后没有财力雄厚的大公司,但它从“浏览器大战”存活下来的,有着很是大的潜力。

 

四.JavaScript核心

 

虽然JavaScriptECMAScript一般被人们用来表达相同的含义,但JavaScript的含义却比ECMA-262中规定的要多得多。一个完整的JavaScript应该由下列三个不一样的部分组成。

1.核心(ECMAScript)

2.文档对象模型(DOM)

3.浏览器对象模型(BOM)

 

ECMAScript介绍

ECMAScript-262定义的ECMAScriptWeb浏览器没有依赖关系。ECMAScript定义的只是这门语言的基础,而在此基础之上能够构建更完善的脚本语言。咱们常见的Web浏览器只是ECMAScript实现可能的宿主环境之一。

既然他不依赖于Web浏览器,那么他还在哪些环境中寄宿呢?好比:ActionScriptScriptEase等。而他的组成部分有:语法、类型、语句、关键字、保留字、操做符、对象等。

 

ECMAScript版本

ECMAScript目前有四个版本,12345版本,能够搜索查阅。

 

Web浏览器对ECMAScript的支持

到了2008年,五大主流浏览器(IEFirefoxSafariChromeOpera)所有作到了与ECMA-262兼容。其中,只有Firefox力求作到与该标准的第4版兼容。

 

文档对象模型(DOM) 

文档对象模型(DOMDocument Object Model)是针对XML但通过扩展用于HTML的应用程序编程接口(APIApplication Programming Interface)

DOM有三个级别,每一个级别都会新增不少内容模块和标准(有兴趣能够搜索查询) 

 

浏览器对象模型(BOM)

访问和操做浏览器窗口的浏览器对象模型(BOMBrowser Object Model)。开发人员使用BOM能够控制浏览器显示页面之外的部分。而BOM真正不同凡响的地方(也是常常会致使问题的地方),仍是它做为JavaScript实现的一部分,至今仍没有相关的标准。