一、什么是JS

​ JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器声明式(如函数是

​ JavaScript在1995年由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近

​ JavaScript的标准是ECMAScript 。截至 2012 年,所有浏览器都完整的支持ECMAScript 5.1,旧版本的浏览器至少支持ECMAScript 3 标准。2015年6月17日,ECMA国际组织发布了ECMAScript的第六版,该版本正式名称为 ECMAScript 2015,但通常被称为ECMAScript 6 或者ES6。

二、JS发展史

1990年底,欧洲科学家:Tim Berners-Lee(****蒂姆伯纳斯 - 李****),在互联网的基础上,发明了 World Wide Web(万维网)。从那以后就可以在网上浏览网页文件。但是最早的网页只能在操作系统的终端里浏览(使用命令行操作),网页是在字符窗口中显示的,非常不方便。

1992年底,美国 NCSA 开发了 Mosaic 浏览器,这是人类历史上第一个浏览器,从此就进入了浏览器浏览(图形界面窗口浏览)的大时代。

1994年10月,Mosaic的开发者之一:Marc Andreessen(*马克 安德森*)联合投资家 Jim Clark(吉姆 克拉克)成立了 Mosaic Communications(Mosaic 通信公司)**,但是不久后就改名为 Netscape(网景)。这家公司主要就在 Mosaic浏览器的基础上开发面向普通用户的新一代浏览器 Netscape Navigator(网景领航员)。

1994年12月, Navigator 发布了 1.0 版,一发布大受欢迎,市场份额一举超过了 90%。

但是 Netscape 公司很快就发现,Navigator 浏览器 需要一种可以嵌入网页的脚本语言(不具备开发操作系统的能力,用来编写控制大型应用程序(比如浏览器)的文件),用来控制浏览器行为。在当时,网速很慢但是上网费却非常贵,有些操作不适合在服务端完成。比如说:用户忘记填写 “用户名”,但是却点击了 “发送” 按钮,到服务器在发现就有些晚了(浪费网费),所以最好能在用户发出数据之前,就提醒用户 “填写用户名”。所以这时候就需要在网页中嵌入一些小程序,让浏览器检测每一栏是否都填写了。

所以当时管理层对这种浏览器脚本语言的设想是:功能不需要太强,语法较为简单,容易学习和部署。那一年,Sun公司的 Java 语言发布出来了,而且市场推广活动十分成功。所以当时 Netscape 公司就决定与 Sun 公司合作,让浏览器支持嵌入 Java 小程序(后称:Java applet)。但是,浏览器脚本语言是否就选用 Java语言,就存在其争论。后来,还是决定不使用 Java。因为 Java 的语法对于网页小程序过于 “重” 了。但是决定脚本语言的语法还是要接近 Java语言,并且可以支持 Java 程序。这些设想直接就排除了当时现存语言,比如 Perl、Python、TCL。

1995年4月,Netscape 公司决定雇佣了程序员 Brendan Eich (****布兰登 艾希****)开发这种网页脚本语言。Brendan Eich 当时有很强的函数式编程北京,希望以 Scheme 语言(函数式语言鼻祖 LISP 语言的一种方言)为蓝本,来实现这种新语言。他的Netscape上司坚持认为该语言的语法类似于Java。结果是一种语言具有Scheme的大部分功能,Self的面向对象以及Java的语法。

1995年5月,第一个版本在十天内完成,以适应 Navigator 2.0 Beta 发布计划。这个语言是一个大杂烩,语法有多个来源。

  • 基本语法:借鉴 C 语言和 Java 语言。
  • 数据结构:借鉴 Java 语言,包括将值分成原始值和对象两大类。
  • 函数的用法:借鉴 Scheme 语言和 Awk 语言,将函数当作第一等公民,并引入闭包。
  • 原型继承模型:借鉴 Self 语言(Smalltalk 的一种变种)。
  • 正则表达式:借鉴 Perl 语言。
  • 字符串和数组处理:借鉴 Python 语言

为了保持简单,这种脚本语言缺乏了一些关键的功能,比如块级作用域、模块、subtyping(子类型)等等,但是却可以利用现有功能找出解决办法。这种功能的不足,直接导致了后来的 JavaScript 的一个显著特点:对于其他语言,你需要学习语言的各种功能,二对于 JavaScript ,你常常只需要学习解决各种问题的模式就好了。而且由于来源多样,从一开始就注定了, JavaScript 的编程风格是函数式编程和面向对象编程的一种混合体。

Netscape 公司的这种浏览器脚本语言,最初名字叫做 Mocha,1995年9月改为 LiveScript。12月,Netscape 公司与 Sun 公司(Java 语言的发明者和所有者)达成协议,后者允许将这种语言叫做 JavaScript。这样一来,Netscape 公司可以借助 Java 语言的声势,而 Sun 公司则将自己的影响力扩展到了浏览器。

之所以起这个名字,并不是因为 JavaScript 本身与 Java 语言有多么深的关系**(实际上基本没关系),**而是因为 Netscape 公司已经决定,使用 Java 语言开发网络应用程序,JavaScript 可以像胶水一样,将各个部分连接起来。但是后来 Java 语言的浏览器插件失败了,JavaScript 反而发扬光大。

1995年12月4日,Netscape 公司与 Sun 公司联合发布了 JavaScript 语言,对外宣传JavaScript 是 Java 的补充,属于轻量级的 Java,专门用来操作网页。

1996年3月,Navigator 2.0 浏览器正式内置了 JavaScript 脚本语言。

三、JS特性

(1)脚本语言。JavaScript是一种解释型的脚本语言,C、C++)等语言先编译后执行,而JavaScript是在程序的运行过程中逐行进行解释。

(2)基于对象。JavaScript是一种基于对象的脚本语言,它不仅可以创建对象,也能使用现有的对象。

(3)简单。JavaScript语言中采用的是弱类型的变量类型,对使用的数据类型未做出严格的要求,是基于Java基本语句和控制的脚本语言,其设计简单紧凑。

(4)动态性。JavaScript是一种采用事件驱动的脚本语言,它不需要经过Web服务器就可以对用户的输入做出响应。在访问一个网页时,鼠标在网页中进行鼠标点击或上下移、窗口移动等操作JavaScript都可直接对这些事件给出相应的响应。

(5)跨平台性。JavaScript脚本语言不依赖于操作系统,仅需要浏览器的支持。因此一个JavaScript脚本在编写后可以带到任意机器上使用,前提上机器上的浏览器支 持JavaScript脚本语言,JavaScript已被大多数的浏览器所支持。 [6]

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

而随着服务器的强壮,虽然程序员更喜欢运行于服务端的脚本以保证安全,但JavaScript仍然以其跨平台、容易上手等优势大行其道。同时,有些特殊功能(如AJAX)必须依赖JavaScript在客户端进行支持。

了解JavaScript脚本相关推荐

  1. 嵌入式JavaScript脚本解释器的研究与实现

    论文标题:嵌入式JavaScript脚本解释器的研究与实现 The Research and Implementation of an Embedded JavaScript Interpreter ...

  2. html,css,js小实例,CSS和JavaScript脚本实例

    CSS和JavaScript脚本实例 导语:CSS样式和JavaScript脚本是应该放在外部文件中呢?还是把它们放在页面本身之内呢?以下的是百分网小编为大家搜集的CSS样式和JavaScript脚本 ...

  3. 如何在html中写javascript代码,如何在本地html代码中使用javascript脚本

    我在jsfiddle中的代码正在工作,但是当我尝试在本地使用它时没有. 我不知道如何解决它,因为我认为代码是正确的. 我也尝试下载Jquery文件,并将其链接到代码中,但它不起作用.我确信这是一个愚蠢 ...

  4. JavaScript脚本中 getElementById 返回值总是为空

    出现该问题的主要问题是由于JavaScript脚本中调用的标签位置位于脚本位置之后,我理解的JavaScript调用了尚未加载的标签,故而出错.因此解决办法也好办,就是讲JavaScript代码写在b ...

  5. 服务器端执行javascript脚本

    想实现这样的功能: 单击一个服务器端按钮(登陆)后,如果登陆成功隐藏页面上的一个HTML按钮. 于是想通过在服务器端执行javascript脚本实现: private void Btn_login_C ...

  6. Python selenium巧用Javascript脚本注入解决按钮点选问题

    Python selenium巧用Javascript脚本注入解决按钮点选问题 参考文章: (1)Python selenium巧用Javascript脚本注入解决按钮点选问题 (2)https:// ...

  7. SpiderMonkey-让你的C++程序支持JavaScript脚本

    译序 有些网友对为什么D2JSP能运行JavaScript脚本程序感到奇怪,因此我翻译了这篇文章,原文在这里.这篇教程手把手教你如何利用SpiderMonkey创建一个能执行JavaScript脚本的 ...

  8. VS集成环境中的JavaScript脚本语法检查

    集成在Visual Studio环境中的JavaScript脚本语法检查. 1.可以直接检验js文件,也可以检验html和aspx页面上的脚本语法. 2.集成环境中直接使用,双击定位到语法错误处. 3 ...

  9. Aspx页面中直接编写javascript脚本

    Aspx页面中直接编写javascript脚本 ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ Title      : AspNet Page Using ...

  10. document 文挡对象 - JavaScript脚本语言描述

    document 文挡对象 - JavaScript脚本语言描述 ------------------------------------------------------------------- ...

最新文章

  1. linux 后台任务 运行 关闭 查看
  2. draw.io二次开发(1)三种运行模式的区别
  3. DCMTK:读取DICOM图像,并使用设置创建PGM位图
  4. iOS开发之-- 从当前隐藏导航界面push到下一个显示导航界面出现闪一下的问题
  5. 链表例题2:链表的倒数第k个节点是多少
  6. less中mixins与extend的区别
  7. 基于BP神经网络识别手写字体MINST字符集
  8. html/css表单美化
  9. FTP上传失败报错227 Entering Passive Model (222,111,8,111,10,40)
  10. 用Python做证券指数的三种策略分析
  11. 例3.2 计算存款利息
  12. 内存泄露分析工具linux,Linux下性能分析工具和内存泄露检测工具的简介(Valgrind和gprof)...
  13. 7 Papers Radios | SIGGRAPH 2020最佳博士论文;南开等提出新型自校准卷积
  14. FPGA 的布局规划艺术
  15. 剖析SPDK读写NVMe盘过程--从hello_world开始
  16. 燕山大学2019年计算机全国排名,燕山大学2019年排名第90位 较2018年下降6名
  17. background-attachment: fixed
  18. UFD203A101 3BHE019361R0101电 工理论、电子技术、信息处理、控制理论、电力系统分析
  19. python爬虫东方财富网_Python爬虫入门:以东方财富网为例
  20. php 漂浮广告代码,JavaScript实现带缓冲效果的随屏滚动漂浮广告代码

热门文章

  1. Android文字识别,tess-two的使用(基于Android Studio)
  2. 《天下无贼》经典语录
  3. css写的一个简单的幻灯片效果页面
  4. ppt刷格式常用技巧 8.6
  5. python字典生成器,生成纯数字字典、英文字典、混合字典。
  6. 【观察】神州数码:向云而生,纵情向前
  7. 方块游戏 (银河英雄传说)(并查集)
  8. (一)u-boot2013.01.01 for TQ210:《Uboot简介》
  9. 从零开始实现放置游戏(前言)
  10. 强化学习的两大话题之一,仍有极大探索空间