JavaScript脚本语言是什么_动力节点Java学院整理


Posted in Javascript onJune 26, 2017

JavaScript,也称ECMAScript,是一种基于对象和事件驱动并具有相对安全性并广泛用于客户端网页开发的脚本语言,同时也是一种广泛用于客户端Web开发的脚本语言。

最早是在HTML上使用的,用来给HTML网页添加动态功能,由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题及响应用户的各种操作,为客户提供更流畅的浏览效果。因为当时服务端需要对数据进行验证,由于网络速度相当缓慢,只有28.8kbps,验证步骤浪费的时间太多。于是Netscape的浏览器Navigator加入了Javascript,提供了数据验证的基本功能。然而现在JavaScript也可被用于网络服务器,如Node.js。

一、javascript的组成

一个完整的 JavaScript 实现是由以下 3 个不同部分组成的:

JavaScript脚本语言是什么_动力节点Java学院整理

ECMAScript:描述了该语言的语法和基本对象;
文档对象模型(Document Object Model,简称DOM)):描述处理网页内容的方法和接口;
浏览器对象模型(Browser Object Model,简称BOM)):描述与浏览器进行交互的方法和接口。

二、javascript的基本特点

是一种解释性脚本语言(代码不进行预编译)。
主要用来向 HTML 页面添加交互行为。
可以直接嵌入 HTML 页面,但写成单独的js文件有利于结构和行为的分离。

三、javascript的特性

不同于服务器端脚本语言,例如PHP与ASP,JavaScript主要被作为客户端脚本语言在用户的浏览器上运行,不需要服务器的支持。所以在早期程序员比较青睐于JavaScript以减少对服务器的负担,而与此同时也带来另一个问题:安全性。

而随着服务器的强壮,虽然现在的程序员更喜欢运行于服务端的脚本以保证安全,但JavaScript仍然以其跨平台、容易上手等优势大行其道。同时,有些特殊功能(如AJAX)必须依赖Javascript在客户端进行支持。随着引擎如V8和框架如Node.js的发展,及其事件驱动及异步IO等特性,JavaScript逐渐被用来编写服务器端程序。

四、JavaScript的发展历史背景

1、Nombas和ScriptEase

大概在1992年,一家称作Nombas的公司开发了一种叫做C 减减(C-minus-minus,简称 Cmm)的嵌入式脚本语言。Cmm 背后的理念很简单:一个足够强大可以替代宏操作(macro)的脚本语言,同时保持与 C (和 C ++)足够的相似性,以便开发人员能很快学会。这个脚本语言捆绑在一个叫做 CEnvi 的共享软件中,它首次向开发人员展示了这种语言的威力。
Nombas 最终把 Cmm 的名字改成了 ScriptEase,原因是后面的部分(mm)听起来过于消极,同时字母 C “令人害怕”。
现在 ScriptEase 已经成为了 Nombas 产品背后的主要驱动力。

2、Netscape发明了JavaScript

当 Netscape Navigator 崭露头角时,Nombas 开发了一个可以嵌入网页中的 CEnvi 的版本。这些早期的试验被称为 Espresso Page(浓咖啡般的页面),它们代表了第一个在万维网上使用的客户端语言。而 Nombas 丝毫没有料到它的理念将会成为万维网的一块重要基石。

当网上冲浪越来越流行时,对于开发客户端脚本的需求也逐渐增大。此时,大部分因特网用户还仅仅通过 28.8 kbit/s 的调制解调器连接到网络,即便这时网页已经不断地变得更大和更复杂。而更加加剧用户痛苦的是,仅仅为了简单的表单有效性验证,就要与服务器进行多次地往返交互。设想一下,用户填完一个表单,点击提交按钮,等待了 30 秒的处理后,看到的却是一条告诉你忘记填写一个必要的字段。

那时正处于技术革新最前沿的 Netscape,开始认真考虑开发一种客户端脚本语言来解决简单的处理问题。

当时工作于Netscape的Brendan Eich,开始着手为即将在 1995 年发行的 Netscape Navigator 2.0 开发一个称之为 LiveScript 的脚本语言,当时的目的是在浏览器和服务器(本来要叫它 LiveWire)端使用它。Netscape 与 Sun 及时完成 LiveScript 实现。

就在 Netscape Navigator 2.0 即将正式发布前,Netscape 将其更名为JavaScript。虽然Netscape在最初将其脚本语言命名为LiveScript,后来Netscape在与Sun合作之后将其改名为JavaScript。JavaScript最初受Java启发而开始设计的,目的之一就是“看上去像Java”,因此语法上有类似之处,一些名称和命名规范也借自Java。但JavaScript的主要设计原则源自Self和Scheme。

JavaScript与Java名称上的近似,是当时网景为了营销考虑与太阳微系统达成协议的结果。为了取得技术优势,微软推出了JScript来迎战JavaScript的脚本语言。为了互用性,Ecma国际(前身为欧洲计算机制造商协会)创建了ECMA-262标准(ECMAScript)。现在两者都属于ECMAScript的实现。尽管JavaScript作为给非程序人员的脚本语言,而非作为给程序人员的脚本语言来推广和宣传,但是JavaScript具有非常丰富的特性。JavaScript 从此变成了因特网的必备组件。

3、三足鼎立

因为 JavaScript 1.0 如此成功,Netscape 在 Netscape Navigator 3.0 中发布了 1.1 版。恰巧那个时候,微软决定进军浏览器,发布了 IE 3.0 并搭载了一个 JavaScript 的克隆版,叫做 JScript(这样命名是为了避免与 Netscape 潜在的许可纠纷)。微软步入 Web 浏览器领域的这重要一步虽然令其声名狼藉,但也成为 JavaScript 语言发展过程中的重要一步。

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

4、标准化

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

目前符合 ECMA-262 3rd Edition 标准的实现有:

       Microsoft 公司的 JScript

Mozilla 的 JavaScript-C(C语言实现),现名 SpiderMonkey

Mozilla 的 Rhino(Java 实现)

Digital Mars 公司的 DMDScript

Google 公司的 V8

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

五、JavaScript常用来完成以下任务
1、嵌入动态文本于HTML页面
2、对浏览器事件作出响应
3、读写HTML元素
4、在数据被提交到服务器之前验证数据
5、检测访客的浏览器信息
6、控制cookies,包括创建和修改等

六、Javascript的使用方式

Javascript加入网页有两种方法:直接方式和引用方式。
1、直接方式

这是最常用的方法,大部分含有Javascript的网页都采用这种方法,例如:

<html>
    <head>
   <title>简单的JavaScript Hello World</title>
    <script type="text/javascript">
      document.write("Hello, 动力节点!");  // 在浏览器视窗内直接显示
      alert("Hello, 动力节点!");      // 弹窗显示
      console.log("Hello, 动力节点!");   // 在控制台(console)里显示,需要先开启开发工具控制台
    </script>
   </head>
   <body>
HTML页面内容……
   </body>

</html>

在这个例子中,我们可看到一个新的标签:<script>……</script>,而<script language="Javascript"> 用来告诉浏览器这是用Javascript编写的程序,需要调动相应的解释程序进行解释。(w3c已经建议使用新的标准:<script type="application/javascript">)

注意在非xhtml文档中插入script标签时,如果不是引用外部文件,应该在script内加上cdata声明,避免大于和小于运算符引起的浏览器解析错误

2、引用方式

如果已经存在一个Javascript源文件(通常以js为扩展名),则可以采用这种引用的方式,以提高程序代码的利用率。其基本格式如下:

<script src=“url” type="text/javascript"></script>

其中的Url就是程序文件的地址。同样的,这样的语句可以放在HTML文档头部或主体的任何部分。如果要实现“直接插入方式”中所举例子的效果,可以首先创建一个Javascript源代码文件“Script.js”,其内容如下:

document.write("这是Javascript!采用直接插入的方法!");

在网页中可以这样调用程序:<script src="Script.js" type="text/javascript"></script> 。
也可以同时在导入文件时制定javascript的版本,例如:<script src="Script.js" type="text/javascript; version=1.8"></script>

注意:凡是指定了src属性的script标签里的内容都会被忽略。

七、JavaScript与Java的区别
很多人看到Java和JavaScript都有“Java”四个字,就以为它们是同一样东西,连我自己当初也是这样。事实上,JAVA语言和JavaScript语言是相关的,但是它们的联系并非你想像的那样紧密。首先Java语言是SUN Microsystems公司的产品,而JavaScript是Netscape公司的产品。

其次它们在功能上也有些差异:Java在客户端的运行的应用程序叫做Java Applet,是嵌在网页中,而又有自己独立的运行窗口的小程序。Java Applet 是预先编译好的,一个Applet 文件(.class)用Notepad 打开阅读,根本不能理解。Java Applet 的功能很强大,可以访问http、ftp等协议,甚至可以在电脑上种病毒(已有先例了)。

相比之下,JavaScript 的能力就比较小了。JavaScript 是一种“脚本”(“Script”),它直接把代码写到HTML 文档中,浏览器读取它们的时候才进行编译、执行,所以能查看HTML 源文件就能查看JavaScript 源代码。JavaScript 没有独立的运行窗口,浏览器当前窗口就是它的运行窗口。它们的相同点,我想只有同是以Java 作编程语言一点了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
密码强度检测效果实现原理与代码
Jan 04 Javascript
JS 实现Json查询的方法实例
Apr 12 Javascript
JavaScript回调(callback)函数概念自我理解及示例
Jul 04 Javascript
firefox下jquery ajax返回object XMLDocument处理方法
Jan 26 Javascript
javascript判断是否按回车键并解决浏览器之间的差异
May 13 Javascript
理解JavaScript的变量的入门教程
Jul 07 Javascript
js合并两个数组生成合并后的key:value数组
May 09 Javascript
详解JavaScript 中 if / if...else...替换方式
Jul 15 Javascript
JQuery属性操作与循环用法示例
May 15 jQuery
jQuery实现朋友圈查看图片
Sep 11 jQuery
前端 javascript 实现文件下载的示例
Nov 24 Javascript
详解Vue的列表渲染
Nov 20 Vue.js
JavaScript简介_动力节点Java学院整理
Jun 26 #Javascript
JavaScript数组_动力节点Java学院整理
Jun 26 #Javascript
Angular 表单控件示例代码
Jun 26 #Javascript
jQuery实现一个简单的验证码功能
Jun 26 #jQuery
jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
Jun 26 #jQuery
JavaScript实现三级联动菜单实例代码
Jun 26 #Javascript
jQuery实现frame之间互通的方法
Jun 26 #jQuery
You might like
配置最新的PHP加MYSQL服务器
2006/10/09 PHP
如何使用PHP实现javascript的escape和unescape函数
2013/06/29 PHP
ThinkPHP之N方法实例详解
2014/06/20 PHP
PHP内存溢出优化代码详解
2021/02/26 PHP
JavaScript通过this变量快速找出用户选中radio按钮的方法
2015/03/23 Javascript
js获取微信版本号的方法
2015/05/12 Javascript
JavaScript设计模式经典之命令模式
2016/02/24 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐)
2016/06/23 Javascript
AngularJs  Understanding Angular Templates
2016/09/02 Javascript
jquery横向纵向鼠标滚轮全屏切换
2017/02/27 Javascript
Vue.js实战之使用Vuex + axios发送请求详解
2017/04/04 Javascript
jQuery滑动到底部加载下一页数据的实例代码
2017/05/22 jQuery
Angular.js初始化之ng-app的自动绑定与手动绑定详解
2017/07/31 Javascript
JavaScript编程设计模式之观察者模式(Observer Pattern)实例详解
2017/10/25 Javascript
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
2017/11/28 Javascript
AngularJs中$cookies简单用法分析
2019/05/30 Javascript
通过javascript实现扫雷游戏代码实例
2020/02/09 Javascript
[10:39]DOTA2上海特级锦标赛音乐会纪录片
2016/03/21 DOTA
matplotlib 输出保存指定尺寸的图片方法
2018/05/24 Python
python中利用h5py模块读取h5文件中的主键方法
2018/06/05 Python
python+selenium实现QQ邮箱自动发送功能
2019/01/23 Python
python 3.7.4 安装 opencv的教程
2019/10/10 Python
tensorflow实现训练变量checkpoint的保存与读取
2020/02/10 Python
python绘制雷达图实例讲解
2021/01/03 Python
HTML5的结构和语义(5):交互
2008/10/17 HTML / CSS
美国最流行的男士时尚网站:Touch of Modern
2018/02/05 全球购物
英国折扣高尔夫商店:Discount Golf Store
2019/11/19 全球购物
云南省召开党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
幼儿园大班教师个人工作总结
2015/02/05 职场文书
小班下学期个人总结
2015/02/12 职场文书
个人总结格式范文
2015/03/09 职场文书
个人廉政承诺书
2015/04/28 职场文书
百万英镑观后感
2015/06/09 职场文书
学子宴致辞大全
2015/07/27 职场文书
SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法
2021/06/30 SQL Server
openGauss数据库JDBC环境连接配置的详细过程(Eclipse)
2022/06/01 Java/Android