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 相关文章推荐
一个tab标签切换效果代码
Mar 27 Javascript
jQuery中setTimeout的几种使用方法小结
Apr 07 Javascript
js取值中form.all和不加all的区别介绍
Jan 20 Javascript
jquery删除指定的html标签并保留标签内文本内容的方法
Apr 02 Javascript
window.location.href的用法(动态输出跳转)
Aug 09 Javascript
jQuery的事件委托实例分析
Jul 15 Javascript
jQuery实现的Tab滑动选项卡及图片切换(多种效果)小结
Sep 14 Javascript
javascript 中的事件委托详解
Oct 25 Javascript
前端 Vue.js 和 MVVM 详细介绍
Dec 29 Javascript
使用vux实现上拉刷新功能遇到的坑
Feb 08 Javascript
在vue项目中正确使用iconfont的方法
Sep 28 Javascript
React中的Context应用场景分析
Jun 11 Javascript
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+ajax实现无刷新数据分页的办法
2015/11/02 PHP
PHP7.3.10编译安装教程
2019/10/08 PHP
php提高脚本性能的4个技巧
2020/08/18 PHP
在次封装easyui-Dialog插件实现代码
2010/11/14 Javascript
Javascript 检测键盘按键信息及键码值对应介绍
2013/01/03 Javascript
jQuery动态添加删除select项(实现代码)
2013/09/03 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
浅谈$('div a') 与$('div&gt;a')的区别
2016/07/18 Javascript
js 获取站点应用名的简单实例
2016/08/18 Javascript
浅析Node.js:DNS模块的使用
2016/11/23 Javascript
javascript读取文本节点方法小结
2016/12/15 Javascript
jQuery实现简易的输入框字数计数功能示例
2017/01/16 Javascript
JS实现页面打印功能
2017/03/16 Javascript
Vue.js数字输入框组件使用方法详解
2019/10/19 Javascript
JavaScript禁止右击保存图片,禁止拖拽图片的实现代码
2020/04/28 Javascript
Vue作用域插槽实现方法及作用详解
2020/07/08 Javascript
Javascript文本框脚本实现方法解析
2020/10/30 Javascript
JavaScript实现无限轮播效果
2020/11/19 Javascript
利用Python将时间或时间间隔转为ISO 8601格式方法示例
2017/09/05 Python
Python实现滑动平均(Moving Average)的例子
2019/08/24 Python
python如何从文件读取数据及解析
2019/09/19 Python
图解python全局变量与局部变量相关知识
2019/11/02 Python
Python实现将蓝底照片转化为白底照片功能完整实例
2019/12/13 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
2020/02/20 Python
Python限制内存和CPU使用量的方法(Unix系统适用)
2020/08/04 Python
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
Linux如何修改文件和文件夹的权限
2013/09/05 面试题
高中生的自我鉴定范文
2014/01/24 职场文书
化学系大学生自荐信范文
2014/03/01 职场文书
2014世界杯球队球队口号
2014/06/05 职场文书
医药公司采购员岗位职责
2014/09/12 职场文书
2015年上半年党建工作总结
2015/03/30 职场文书
员工安全责任协议书
2016/03/22 职场文书
会计专业2019暑假实习报告
2019/06/21 职场文书
小程序实现文字循环滚动动画
2021/06/14 Javascript
Java Lambda表达式常用的函数式接口
2022/04/07 Java/Android