JavaScript简介

JavaScript 做棵大树 7年前 (2017-04-15) 2274次浏览 0个评论
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给 HTML 网页增加动态功能。
在 1995 年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为NetscapeSun合作,Netscape管理层希望它外观看起来像Java,因此取名为 JavaScript。但实际上它的语法风格与SelfScheme较为接近。[1]
为了取得技术优势,微软推出了JScript,CEnvi 推出 ScriptEase,与 JavaScript 同样可在浏览器上运行。为了统一规格,因为JavaScript兼容于 ECMA 标准,因此也称为ECMAScript
外文名
JavaScript
发行时间
1992 年
设计者
Brendan Eich
实现者
NetscapeMozilla 基金会
编程范型
脚本语言、基于原型的面向对象
形态系统
动态类型
发源地
美国

组成部分

ECMAScript,描述了该语

javascript 组成

言的语法和基本对象[2]

文档对象模型(DOM),描述处理网页内容的方法和接口。[2]
浏览器对象模型(BOM),描述与浏览器进行交互的方法接口[2]

基本特点

JavaScript是一种属于网络的脚本语言,已经被广泛用于 Web 应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在 HTML 中来实现自身的功能的。[3] 
  1. 是一种解释性脚本语言(代码不进行预编译)。[4]
  2. 主要用来向HTML标准通用标记语言下的一个应用)页面添加交互行为。[4]
  3. 可以直接嵌入 HTML 页面,但写成单独的js文件有利于结构和行为的分离[4]
  4. 跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(如WindowsLinux、Mac、Android、iOS 等)。
Javascript 脚本语言同其他语言一样,有它自身的基本数据类型,表达式和算术运算符及程序的基本程序框架。Javascript 提供了四种基本的数据类型和两种特殊数据类型用来处理数据和文字。而变量提供存放信息的地方,表达式则可以完成较复杂的信息处理。[5]

日常用途

  1. 嵌入动态文本于 HTML 页面。[4]
  2. 对浏览器事件做出响应。[4]
  3. 读写HTML 元素[4]
  4. 在数据被提交到服务器之前验证数据。[4]
  5. 检测访客的浏览器信息。[4]
  6. 控制cookies,包括创建和修改等。[4]
  7. 基于 Node.js 技术进行服务器端编程。[6]

历史

它最初由NetscapeBrendan Eich设计。JavaScript 是甲骨文公司的注册商标。Ecma 国际以 JavaScript 为基础制定了ECMAScript标准。JavaScript也可以用于其他场合,如服务器端编程。完整的 JavaScript 实现包含三个部分:ECMAScript文档对象模型,浏览器对象模型。[7]
Netscape在最初将其脚本语言命名为LiveScript,后来 Netscape 在与 Sun 合作之后将其改名为 JavaScript。JavaScript 最初受 Java 启发而开始设计的,目的之一就是“看上去像 Java”,因此语法上有类似之处,一些名称和命名规范也借自 Java。但 JavaScript 的主要设计原则源自SelfScheme。JavaScript 与 Java 名称上的近似,是当时Netscape为了营销考虑与 Sun 微系统达成协议的结果。为了取得技术优势,微软推出了JScript来迎战 JavaScript 的脚本语言。为了互用性,Ecma 国际(前身为欧洲计算机制造商协会)创建了 ECMA-262 标准(ECMAScript)。两者都属于 ECMAScript 的实现。尽管 JavaScript 作为给非程序人员的脚本语言,而非作为给程序人员的脚本语言来推广和宣传,但是 JavaScript 具有非常丰富的特性。[8]
发展初期,JavaScript 的标准并未确定,同期有Netscape的 JavaScript,微软的 JScript 和 CEnvi 的 ScriptEase 三足鼎立。1997 年,在 ECMA(欧洲计算机制造商协会)的协调下,由 Netscape、Sun、微软、Borland 组成的工作组确定统一标准:ECMA-262。

特性

JavaScript 脚本语言具有以下特点:
(1)脚本语言。JavaScript 是一种解释型的脚本语言,C、C++等语言先编译后执行,而 JavaScript 是在程序的运行过程中逐行进行解释。
(2)基于对象。JavaScript 是一种基于对象的脚本语言,它不仅可以创建对象,也能使用现有的对象。
(3)简单。JavaScript 语言中采用的是弱类型的变量类型,对使用的数据类型未做出严格的要求,是基于 Java 基本语句和控制的脚本语言,其设计简单紧凑。
(4)动态性。JavaScript 是一种采用事件驱动的脚本语言,它不需要经过 Web 服务器就可以对用户的输入做出响应。在访问一个网页时,鼠标在网页中进行鼠标点击或上下移、窗口移动等操作 JavaScript 都可直接对这些事件给出相应的响应。
(5)跨平台性。JavaScript 脚本语言不依赖于操作系统,仅需要浏览器的支持。因此一个 JavaScript 脚本在编写后可以带到任意机器上使用,前提上机器上的浏览器支 持 JavaScript 脚本语言,目前 JavaScript 已被大多数的浏览器所支持。[3] 
不同于服务器端脚本语言,例如PHPASP,JavaScript 主要被作为客户端脚本语言在用户的浏览器上运行,不需要服务器的支持。所以在早期程序员比较青睐于 JavaScript 以减少对服务器的负担,而与此同时也带来另一个问题:安全性。
而随着服务器的强壮,虽然程序员更喜欢运行于服务端的脚本以保证安全,但 JavaScript 仍然以其跨平台、容易上手等优势大行其道。同时,有些特殊功能(如AJAX)必须依赖 Javascript 在客户端进行支持。随着引擎如 V8 和框架如Node.js的发展,及其事件驱动及异步 IO等特性,JavaScript 逐渐被用来编写服务器端程序。

编程

JavaScript 是一种脚本语言,其源代码在发往客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行。直译语言的弱点是安全性较差,而且在 JavaScript 中,如果一条运行不了,那么下面的语言也无法运行。而其解决办法就是于使用 try{}catch(){}︰
1
2
3
4
5
6
7
8
9
10
11
12
13
console.log("a");//这是正确的
 console.log("b");//这是正确的
 console.logg("c");//这是错误的,并且到这里会停下来
 console.log("d");//这是正确的
 console.log("e");//这是正确的
 
 /*解决办法*/
 try{console.log("a");}catch(e){}//这是正确的
 try{console.log("b");}catch(e){}//这是正确的
 try{console.logg("c");}catch(e){}//这是错误的,但是到这里不会停下来,而是跳过
 try{console.log("d");}catch(e){}//这是正确的
 try{console.log("e");}catch(e){}//这是正确的
 
Javascript 被归类为直译语言,因为主流的引擎都是每次运行时加载代码并解译。V8 是将所有代码解译后再开始运行,其他引擎则是逐行解译(SpiderMonkey会将解译过的指令暂存,以提高性能,称为实时编译),但由于 V8 的核心部份多数用 Javascript 撰写(而 SpiderMonkey 是用C++),因此在不同的测试上,两者性能互有优劣。与其相对应的是编译语言,例如C 语言,以编译语言编写的程序在运行之前,必须经过编译,将代码编译为机器码,再加以运行。

版本

JavaScript 已经被Netscape公司提交给ECMA制定为标准,称之为ECMAScript,标准编号 ECMA-262。目前最新版为 ECMA-262 5th Edition。符合 ECMA-262 3rd Edition 标准的实现有:
  1. Microsoft 公司的JScript.
  2. Mozilla 的 JavaScript-C(C 语言实现),现名SpiderMonkey
  3. Mozilla 的Rhino(Java 实现)
  4. Digital Mars 公司的 DMDScript
  5. Google 公司的V8
版本 发布日期 基于 Netscape Navigator Mozilla Firefox Internet Explorer Opera Safari Google Chrome
1.0 1996 年 3 月 2.0
1.1 1996 年 8 月 3.0 3.0
1.2 1997 年 6 月 4.0-4.05
1.3 1998 年 10 月 ECMA-262 1 edition / ECMA-262 2 edition 4.06-4.7x 4.0
1.4 Netscape
Server
1.5 2000 年 11 月 ECMA-262 3 edition 6.0 1.0 5.5 (JScript 5.5),
6 (JScript 5.6),
7 (JScript 5.7),
8 (JScript 6)
6.0,
7.0,
8.0,
9.0
1.6 2005 年 11 月 1.5 + Array extras + Array and String generics + E4X 1.5 3.0, 3.1
1.7 2006 年 10 月 1.6 + Pythonic generators + Iterators + let 2.0 3.2, 4.0 1.0
1.8 2008 年 6 月 1.7 + Generator expressions + Expression closures 3.0 11.50
1.8.1 1.8 + Native JSON support + Minor Updates 3.5
1.8.2 2009 年 6 月 22 日 1.8.1 + Minor updates 3.6
1.8.5 2010 年 7 月 27 日 1.8.1 + ECMAScript 5 Compliance 4 9 11.60

比较

版本 说明 实现
ECMA v1 标准化了 JavaScript1.1 的基本特性,并添加了一些新特性。没有标准化 switch 语句和正则表达式。 由 Netscape 4.5 和 IE 4 实现。
ECMA v2 ECMA v1 的维护版本,只添加了说明 由 Netscape 4.5 和 IE 4 实现。
ECMA v3 标准化了 switch 语句、异常处理和正则表达式。 由 Mozilla、Netscape 6 和 IE 5.5 实现。
HTML
XHTML  HTML 5  CSS  TCP/IP
XML
XML  XSL  XSLT  XSL-FO  XPath  XPointer  XLink  DTD  XML Schema  DOM  XForms  SOAP WSDL  RDF  RSS  WAP  Web Services
Web 脚本
JavaScript  HTML DOM  DHTML  VBScript  AJAX  jQuery  JSON  E4X  WMLScript
Serv 脚本
SQL  ASP  ADO  PHP
.NET
多媒体
SMIL  SVG

网页技术与标准

文档呈现语言
 HTML  XHTML  XML  XForms
 DHTML
样式格式描述语言
 层叠样式表  XSL
动态网页技术
 CGI  FastCGI  ASP  ASP.NET
 ColdFusion  JSP  PHP
客户端交互技术
 ActiveX  Java Applet  JavaFX  AJAX
 Silverlight  ActionScript  Flex  AIR
客户端脚本语言
 JavaScript  JScript  VBScript  ECMAScript
标识定位语言
 URL  URI  XPath  URL 重写
文档纲要语言
 

 DTD  XML Schema

 

 

 

 

转自:百度百科


做棵大树 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明JavaScript 简介
喜欢 (2)
[欢迎投币]
分享 (0)
关于作者:
一个整天无所事事的,有时候忽然热血的孩子
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址