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 相关文章推荐
JS实多级联动下拉菜单类,简单实现省市区联动菜单!
May 03 Javascript
JavaScript中SQL语句的应用实现
May 04 Javascript
23个Javascript弹出窗口特效整理
Feb 25 Javascript
Vue.js项目模板搭建图文教程
Sep 20 Javascript
Vue下滚动到页面底部无限加载数据的示例代码
Apr 22 Javascript
JavaScript引用类型之基本包装类型实例分析【Boolean、Number和String】
Aug 09 Javascript
使用VUE+iView+.Net Core上传图片的方法示例
Jan 04 Javascript
详解在Node.js中发起HTTP请求的5种方法
Jan 10 Javascript
validform表单验证的实现方法
Mar 08 Javascript
javascript function(函数类型)使用与注意事项小结
Jun 10 Javascript
七行JSON代码把你的网站变成移动应用过程详解
Jul 09 Javascript
js 下拉菜单点击旁边收起实现(踩坑记)
Sep 29 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
一个简单的MySQL数据浏览器
2006/10/09 PHP
PHP连接SQLSERVER 注意事项(附dll文件下载)
2012/06/28 PHP
linux下编译安装memcached服务
2014/08/03 PHP
PHP学习记录之常用的魔术常量详解
2019/12/12 PHP
PHP安全之register_globals的on和off的区别
2020/07/23 PHP
如何利用PHP实现上传图片功能详解
2020/09/24 PHP
javascript 当前日期加(天、周、月、年)
2009/08/09 Javascript
iframe调用父页面函数示例详解
2014/07/17 Javascript
推荐一个自己用的封装好的javascript插件
2015/01/29 Javascript
JavaScript检测原始值、引用值、属性
2016/06/20 Javascript
JavaScript每天必学之数组和对象部分
2016/09/17 Javascript
node.js文件上传处理示例
2016/10/27 Javascript
JS+CSS3制作炫酷的弹窗效果
2016/11/08 Javascript
ES6概念 ymbol.for()方法
2016/12/25 Javascript
详解VueJs前后端分离跨域问题
2017/05/24 Javascript
JS中的回调函数实例浅析
2018/03/21 Javascript
Vue入门之animate过渡动画效果
2018/04/08 Javascript
vue favicon设置以及动态修改favicon的方法
2018/12/21 Javascript
使用JavaScrip模拟实现仿京东搜索框功能
2019/10/16 Javascript
用js实现放大镜效果
2020/10/28 Javascript
[02:37]TI8勇士令状不朽珍藏II视频展示
2018/06/23 DOTA
python分析apache访问日志脚本分享
2015/02/26 Python
Python加pyGame实现的简单拼图游戏实例
2015/05/15 Python
Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
2016/09/21 Python
python算法演练_One Rule 算法(详解)
2017/05/17 Python
详解python之多进程和进程池(Processing库)
2017/06/09 Python
深入理解Python中的super()方法
2017/11/20 Python
centos6.8安装python3.7无法import _ssl的解决方法
2018/09/17 Python
python3实现指定目录下文件sha256及文件大小统计
2019/02/25 Python
Python英文文章词频统计(14份剑桥真题词频统计)
2019/10/13 Python
阿姆斯特丹杜莎夫人蜡像馆官方网站:Madame Tussauds Amsterdam
2019/03/12 全球购物
青年志愿者事迹材料
2014/02/07 职场文书
美德少年主要事迹材料
2015/11/04 职场文书
礼貌问候语大全
2015/11/10 职场文书
大学迎新生的欢迎词
2019/06/25 职场文书
基于Go Int转string几种方式性能测试
2021/04/28 Golang