马海祥博客是一个专注于分享SEO优化、网站制作、网络营销和运营思维的自媒体博客!
收藏本站 TAG标签 网站地图 RSS地图
马海祥博客 > 网站制作 > js教程 > JavaScript是什么?JavaScript功能有哪些?

JavaScript是什么?JavaScript功能有哪些?

时间:2013-05-13   文章来源:www.mahaixiang.cn   访问次数:

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

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

JavaScript是什么?JavaScript功能有哪些?-马海祥博客

一、javascript的组成

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

JavaScript是什么?JavaScript功能有哪些?-马海祥博客

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

JavaScript是什么?JavaScript功能有哪些?-马海祥博客
(点击查看大图)

在接下来的几年里,国际标准化组织及国际电工委员会(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的区别

JavaScript是什么?JavaScript功能有哪些?-马海祥博客

很多人看到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与JScript的区别

JScript是Microsoft公司开发的,Javascript是Netscape公司开发的,虽然他们是死对头,但是在现在的浏览器中,无论你把语言指定为Javascript 还是Jscript,浏览器都会综合他们两个语言的特性,所以,即使把语言指定为Javascript,用几句JScript也是没问题的。

虽然浏览器综合了两种语言的特性,但是对于那些对脚本语言熟悉的程序员来说,还是Jscript的实用性更强。如果你在网上察看Javascript和Jscript的手册,你会发现Jscript的运算符比Javascript的多得多,所以许多库(比如Concurrent、Thread)都是采用Jscript的格式编写的。

本文发布于 马海祥博客文章,如想转载,请注明原文网址摘自于http://www.mahaixiang.cn/js/211.html,注明出处;否则,禁止转载;谢谢配合!

相关标签搜索: JavaScript   JS功能  

上一篇: 推荐一种测试JavaScript执行性能和性能比较的方法
下一篇: 最新挂木马的10大操作方法

您可能还会对以下这些文章感兴趣!

  • JavaScript开发者新手经常忽略或误用的基础知识点

    JavaScript本身可以算是一门简单的语言,但我们也不断用智慧和灵活的模式来改进它,昨天我们将这些模式应用到了JavaScript框架中,今天这些框架又驱动了我们的Web应用程序。很多新手开发者被各种强大的JavaScript框架吸引进来,但却忽略了框架身后浩如星海的JavaScript……【 查看全文】

    阅读:637关键词: javascript    开发者   日期:2016-07-03
  • Javascript教程:js异步模式编程的4种解决方法

    随着人们对网站视觉效果及用户体验的要求越来越高,所以在未来网站的建设中,设计师们开始越来越多的使用了js文件来达到预期的效果,随着js文件的越来越多,令设计师们最头痛的事情也就来了,那就是Javascript语言的执行环境是单线程(single thread)。 所谓单线程,就……【 查看全文】

    阅读:5145关键词: Javascript    js教程    异步模式    js编程   日期:2013-09-03
  • JS基础知识:Javascript事件触发列表

    Javascript是一种由Netscape的LiveScript发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言。JavaScript使我们有能力创建动态页面,而事件是可以被JavaScript侦测到的行为,Javascript事件像HTML标签的属性一样使……【 查看全文】

    阅读:2112关键词: js知识    javascript    js事件列表    js事件   日期:2014-06-26
  • 推荐一种测试JavaScript执行性能和性能比较的方法

    随着越来越多的站长对网站形象方面的关注,js文件也使用的越来越多了,于是乎一些细心的seo优化人员也开始重视JavaScript 的性能问题了,同时也导致了越来越多的 JS 性能测试框架和一些工具诞生,比如说 JSLitmus、jsperf 等等,由于本人对JavaScript方面的知识掌握的也……【 查看全文】

    阅读:7003关键词: JavaScript    js文件    JS性能比较   日期:2013-05-12
  • JavaScript事件处理程序的3种方式

    事件对象是用来记录一些事件发生时相关信息的对象,但事件对象只有事件发生时才会产生,并且只能是事件处理函数内部访问,在所有事件处理函数运行结束后,事件对象就被销毁!事件流就是描述了页面中接受事件的顺序,在浏览器发展的初期,两大浏览器厂商IE和Netscape互掐……【 查看全文】

    阅读:8333关键词: javascript    js事件   日期:2014-07-19
  • 常用的JavaScript字符串处理函数及用法

    最近参加了几次前端实习生招聘的笔试,发现很多笔试题都会考到字符串的处理,比方说去哪儿网笔试题、淘宝的笔试题等,如果你经常参加笔试或者也是一个过来人,相信你也跟我一样,发现字符串的处理是前端招聘过程中最常见的题型之一,这些题有一个特点,站在考官的角度去……【 查看全文】

    阅读:1639关键词: javascript    字符串   日期:2015-05-03
  • 常见JS挂马方法及如何防止网站被黑客挂马?

    最近有朋友说自己的网站平时并未作弊,文章也都是原创的,更新很稳定。可不知道为什么网站突然就被各大搜索引擎降权了,一直找不到原因。最后发现是网站被挂马了,导致网站被连累了。在此,借助马海祥博客的平台,给大家简单的介绍下js挂马的方法及如何防止网站被挂马……【 查看全文】

    阅读:1985关键词: JS挂马    防止网站挂马    常见挂马方法   日期:2012-10-26
  • JavaScript对象属性的基础教程指南

    JavaScript是使用对象化编程的,或者叫面向对象编程的。所谓对象化编程,意思是把JavaScript能涉及的范围划分成大大小小的对象,对象下面还继续划分对象直至非常详细为止,所有的编程都以对象为出发点,基于对象,小到一个变量,大到网页文档、窗口甚至屏幕,都是对象。……【 查看全文】

    阅读:1315关键词: js教程    JavaScript    js对象    js属性    js指南   日期:2014-03-13
  • 常用的JS页面跳转代码调用大全

    所谓的js页面跳转就是利用javesrcipt对打开的页面ULR进行跳转,如我们打开的是A页面,通过javsrcipt脚本就会跳转到B页面。目前很多垃圾站经常用js跳转将正常页面跳转到广告页面,当然也有一些网站为了追求吸引人的视觉效果,把一些栏目链接做成js链接,但这是一个比较严……【 查看全文】

    阅读:24316关键词: js页面    js跳转    js代码    js调用   日期:2014-09-17
  • 最新挂木马的10大操作方法

    最近看了很多博友反馈的问题,发现最近一周谈论最多的问题就是js挂马的问题。问题也大多集中在如何挂马、挂马的方法有哪些?挂马的效果和如何防止自己网站被挂木马。并根据自己多年做网站的经验汇总了10条网站挂木马的常用的一些代码写法。在此给大家介绍一下具体代码……【 查看全文】

    阅读:1218关键词: 挂马    最新挂木马方    挂马操作方法    最新挂马方法   日期:2013-05-20
↓ 点击查看更多 ↓

分类目录

  • SEO新闻
  • SEO思维
  • 移动端SEO
  • SEO问答
  • 医疗SEO
  • 淘宝SEO
  • 企业SEO
  • 站外SEO
  • 网站设计
  • 交互设计
  • 网站策划
  • 网页制作
  • 营销策划
  • 营销案例
  • 竞价技巧
  • 数据分析
  • 写作技巧
  • 微信微博
  • 自媒体
  • 新媒体
  • 内容营销
  • 网站运营
  • O2O模式
  • App运营
  • 产品运营
  • 网赚教程
  • 创新思维
  • 电子商务
  • 名人访谈
  • 创业故事

热点推荐

  • JS基础知识:Javascript事件触发列表 JS基础知识:Javascript事件触发列表JS基础知识:Javascript事件触发列表
  • 常用的JS页面跳转代码调用大全 常用的JS页面跳转代码调用大全常用的JS页面跳转代码调用大全
  • 最新挂木马的10大操作方法 最新挂木马的10大操作方法最新挂木马的10大操作方法
  • JavaScript事件处理程序的3种方式 JavaScript事件处理程序的3种方式JavaScript事件处理程序的3种方式

运营思维 更多>>

依靠电子商务改变茶叶营销模式会遇到什么难题?依靠电子商务改变茶叶营销模式会遇到什么难题?
立即访问
新接手一款App该怎么做App优化推广?新接手一款App该怎么做App优化推广?
立即访问
今日头条能否成为自媒体赚钱的新平台今日头条能否成为自媒体赚钱的新平台
立即访问
视频网站为什么很难赚钱?视频网站为什么很难赚钱?
立即访问
竞品分析报告的3大步骤竞品分析报告的3大步骤
立即访问
数据分析的流程及分析方法数据分析的流程及分析方法
立即访问
免费模式赚钱的核心竞争是什么免费模式赚钱的核心竞争是什么
立即访问
如何利用O2O模式经营一家理发连锁店如何利用O2O模式经营一家理发连锁店
立即访问
产品经理怎样用数据指标分析的思路优化产品?产品经理怎样用数据指标分析的思路优化产品?
立即访问
网赚新手快速寻找暴利项目产品的4大途径网赚新手快速寻找暴利项目产品的4大途径
立即访问

互联网 更多>>

  • 互联网思维的一些特征 互联网思维的一些特征 如今,互联网迅猛发展已经渗透人们生活各个方面,尤其是互联网正加快向传统行业渗透和融合,对传统行业提出严……
  • 盘点2010年代这10年的重大网络安全事件 盘点2010年代这10年的重大网络安全事件 二十一世纪的第2个十年即将过去,在过去十年里有很多的重大网络安全事件发生,我们见证了过去十年,大量的数据……
  • 基于高斯模糊原理的模糊图片的研究 基于高斯模糊原理的模糊图片的研究 高斯模糊(Gaussian Blur)的原理中,它是根据高斯曲线调节象素色值,它是有选择地模糊图像。说得直白一点,就是高……

网络营销 更多>>

  • 浅谈社交网络营销的七大营销策略 浅谈社交网络营销的七大营销策略
  • 从免费到付费的社交媒体形态发展分析 从免费到付费的社交媒体形态发展分析
  • 2017年数字营销的十大发展趋势及发展状态 2017年数字营销的十大发展趋势及发展状态
  • 新浪微博已正式发布公告全面封杀微信 新浪微博已正式发布公告全面封杀微信

网站制作 更多>>

  • 响应式网页设计的现状与难点 响应式网页设计的现状与难点
  • 基于交互体验的扁平化设计要点 基于交互体验的扁平化设计要点
  • 动效设计的物理法则及应用 动效设计的物理法则及应用

SEO优化 更多>>

百度搜索用户建议专区上线公告 企业网站SEO推广能给企业带来哪些好处?
  • 如何使用留言评论进行推广引流 如何使用留言评论进行推广引流
    随着新媒体的快速发展,留言评论变得随处可见……
  • 网站收录量对于网站排名的影响作用 网站收录量对于网站排名的影响作用
    很多做SEO的朋友都会问,是不是网站收录越多网……
  • 百度冰桶算法5.0:保障移动搜索用户 百度冰桶算法5.0:保障移动搜索用户
    为了提升移动搜索落地页体验,营造优质的移动……
  • 百度搜索将推出飓风算法2.0:严厉打 百度搜索将推出飓风算法2.0:严厉打
    为了营造良好的搜索内容生态,保护搜索用户的……
  • 今年网站SEO优化要注意的6大策略 今年网站SEO优化要注意的6大策略
    通俗的来说,SEO技术就是一种达到SEO效果所采用……
  • 史上最全的网站SEO策略方案 史上最全的网站SEO策略方案
    在搜索引擎优化中,一个网站的SEO策略能最终影……
  • SEO是什么? SEO是什么?
    对于刚入SEO行业的新人来说,要想做好网站的s……
  • 移动端手机站做站内优化的要点 移动端手机站做站内优化的要点
    随着移动流量的与日俱增,移动搜索引擎的功能……

本月热点文章

  • 1 详解JavaScript中的事件处理
  • 2 常见JS挂马方法及如何防止网站被黑客挂马?
  • 3 JavaScript开发者新手经常忽略或误用的基础知识点
  • 4 JavaScript对象属性的基础教程指南
  • 5 推荐一种测试JavaScript执行性能和性能比较的方法
  • 6 如何将模板理念应用到JS组件中
  • 7 JavaScript是什么?JavaScript功能有哪些?
  • 8 常用的JS页面跳转代码调用大全
  • 9 Javascript教程:js异步模式编程的4种解决方法
  • 10 JavaScript事件处理程序的3种方式

标签云

搜索引擎 seo SEO优化 index.html 电子商务 网站seo 百度 微信 网站优化 企业网站 自媒体 内容营销 产品经理 赚钱 竞价 互联网 网络营销 O2O app 关键词 营销案例 HTML5 O2O模式 用户体验 创业 Photoshop 数据分析 百度竞价 网站流量 营销 外链 文章 网站推广 网站排名 交互设计 SEO策略 社会化媒体 移动端 Google 网站内容 网站分析 网络推广 网站运营 淘宝 网站外链 网站设计 腾讯 医疗网站 网站策划 营销推广 dedecms 竞价推广 app推广 网页设计 友情链接 微信公众号 app应用 商业模式 移动互联网 推广方法 淘宝seo 大数据 网赚 微信营销 文案 博客 企业营销 JavaScript pr 百度搜索 门户网站 淘宝店铺 阿里巴巴 seo思维 优化技巧 网站降权 谷歌 seo技术 社交营销 seo技巧 织梦 SMO 响应式设计 手机网站 SEO新手 SEM Java 设计师 优化方法 转化率 SEO问题 百度推广 演讲 qq 文章写作 团队管理 移动搜索 软文 社交媒体 大型网站