JavaScript的背景
**了解为什么要创建JavaScript及JavaScript是如何创造出来的,会帮助我们理解为什么它的现状是这样的。
早在1993年,NCSA(国家计算机安全协会)的Mosaic是最早广泛发行的浏览器。在1994年,网景成立,它致力于挖掘还是处于幼稚时期的互联网的潜力。网景创造了一个专门的浏览器Netscape Navigator,它主导了整个90年代的市场。许多Mosaic最初的作者都跳槽去做Navigator的开发工作,但是这两者之间没有共享任何代码。
网景很快意识到Web需要变得更加的动感。那时候即使你只是想检查用户在表单中输入的值是否正确,都需要将数据发送到服务器才能得到反馈。1995年网景聘请Brendan Eich,承诺让他在浏览器中实现Scheme(一个Lisp的语言分支)。在他开始之前,网景与软硬件公司Sun(后被Oracle收购)展开合作,将它的静态编程语言Java植入到Navigator中。因此,在网景有一个问题讨论得很激烈:为什么Web中需要有两种编程语言——Java和一个脚本语言。脚本语言的支持者们提到了如下的解释:
我们的目标是给设计师和那些将图片、插件和Java小应用等组件生成Web内容的兼职程序员“胶水”语言。我们Java作为一种被高薪程序员使用的“组件语言”,而“胶水程序员”——Web页面设计者可以通过一种脚本语言来封装组件和自动化交互。
当时网景公司的管理者决定创造一个类似Java语言的脚本语言。这样就排除了现有的脚本语言,比如:Perl、Python、TCL和Scheme.为了保护JavaScript的思想免受竞争提案的影响,网景需要一个原型。在1995年5月,Eich在10天内就写出了第一个版本。JavaScript的一个代号是Mocha,Marc andreesen起的这个名字。由于商标的问题以及很多产品已经用了Live前缀,网景市场部将它改名为:LiveScript。在1995年11月底,Navigator2.0B3发行,其中包含了该语言的原型,这个版本相比之前没有什么大的变化。在1995年12月初,Java语言发展壮大,Sun把Java的商标授权给了网景。这种语言被再次改名,变成了他最终的名字——JavaScript
有了JavaScript就不得不提到ECMAScript,ECMAScript是JavaScript的官方命名。JavaScript指的是一种一个编程语言;ECMAScript是这种语言规范的名字。因此,每当提到这种语言的版本时,就是指ECMAScript。JavaScript当前的版本时ECMAScript5,ECMAScript6在发展中**
JavaScript的定义
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
JavaScript的特点
基本特点
JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。
Javascript脚本语言同其他语言一样,有它自身的基本数据类型,表达式和算术运算符及程序的基本程序框架。Javascript提供了四种基本的数据类型和两种特殊数据类型用来处理数据和文字。而变量提供存放信息的地方,表达式则可以完成较复杂的信息处理。
- 是一种解释性脚本语言(代码不进行预编译)。
- 主要用来向HTML(标准通用标记语言下的一个应用)页面添加交互行为。
- 可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离。
- 跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(如Windows、Linux、Mac、Android、iOS等)。
主要特征
(1)脚本语言。JavaScript是一种解释型的脚本语言,C、C++等语言先编译后执行,而JavaScript是在程序的运行过程中逐行进行解释。
(2)基于对象。JavaScript是一种基于对象的脚本语言,它不仅可以创建对象,也能使用现有的对象。
(3)简单。JavaScript语言中采用的是弱类型的变量类型,对使用的数据类型未做出严格的要求,是基于Java基本语句和控制的脚本语言,其设计简单紧凑。
(4)动态性。JavaScript是一种采用事件驱动的脚本语言,它不需要经过Web服务器就可以对用户的输入做出响应。在访问一个网页时,鼠标在网页中进行鼠标点击或上下移、窗口移动等操作JavaScript都可直接对这些事件给出相应的响应。
(5)跨平台性。JavaScript脚本语言不依赖于操作系统,仅需要浏览器的支持。因此一个JavaScript脚本在编写后可以带到任意机器上使用,前提上机器上的浏览器支 持JavaScript脚本语言,目前JavaScript已被大多数的浏览器所支持。
不同于服务器端脚本语言,例如PHP与ASP,JavaScript主要被作为客户端脚本语言在用户的浏览器上运行,不需要服务器的支持。所以在早期程序员比较青睐于JavaScript以减少对服务器的负担,而与此同时也带来另一个问题:安全性。
而随着服务器的强壮,虽然程序员更喜欢运行于服务端的脚本以保证安全,但JavaScript仍然以其跨平台、容易上手等优势大行其道。同时,有些特殊功能(如AJAX)必须依赖Javascript在客户端进行支持。随着引擎如V8和框架如Node.js的发展,及其事件驱动及异步IO等特性,JavaScript逐渐被用来编写服务器端程序。
JavaScript的组成
ECMAScript,描述了该语
文档对象模型(DOM),描述处理网页内容的方法和接口
浏览器对象模型(BOM),描述与浏览器进行交互的方法和接口。
JavaScript的用途
嵌入动态文本于HTML页面。
对浏览器事件做出响应。
读写HTML元素。
在数据被提交到服务器之前验证数据。
检测访客的浏览器信息。
控制cookies,包括创建和修改等。
基于Node.js技术进行服务器端编程。
其他编程语言对JavaScript的影响
JavaScript与Java的区别
JavaScript和Java
一个常见的误解是JavaScript与Java相似或密切相关。确实,两者都有一个C语言的语法(C语言是他们最直接的共同的祖先语言)。它们通常都是沙箱化的(当在浏览器中使用时),而JavaScript的设计则考虑到了Java的语法和标准库。特别是,所有Java关键字都保留在原始JavaScript中,JavaScript的标准库遵循Java的命名约定,JavaScript的Math和Date对象基于Java 1.0中的类,但相似之处在此结束。
Java和JavaScript最早出现在1995年5月23日,但Java由Sun Microsystems的James Gosling和NetScape Communications的Brendan Eich开发。两种语言之间的差异比其相似之处更为突出。Java有静态输入,而JavaScript的输入是动态的。Java是从编译的字节码中加载的,而JavaScript是作为人类可读的源代码加载的。Java的对象是基于类的,而JavaScript是基于原型的。最后,Java 直到Java 8才支持函数式编程,而JavaScript从一开始就受到了Scheme的影响。
感谢您的阅读!