JavaScript是什么

JavaScript是什么

JavaScript 简称 “JS”,是一种具有 函数 优先的轻量级,解释型或即时编译型的高级编程语言。虽然它是作为开发 Web 页面的脚本语言而出名的,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。

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。

JavaScript基本特点

JavaScript 是一种属于网络的高级脚本语言,已经被广泛用于 Web 应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常 JavaScript 脚本是通过嵌入在 HTML 中来实现自身的功能的。

  1. JavaScript 是一种解释性脚本语言(代码不进行预编译)。
  2. JavaScript 主要用来向 HTML(标准通用标记语言下的一个应用)页面添加交互行为。
  3. JavaScript 可以直接嵌入 HTML 页面,但写成单独的 js 文件有利于结构和行为的分离。
  4. JavaScript 跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(如 Windows、Linux、Mac、Android、iOS 等)。
  5. JavaScript 脚本语言同其他语言一样,有它自身的基本数据类型,表达式和算术运算符及程序的基本程序框架。JavaScript 提供了四种基本的数据类型和两种特殊数据类型用来处理数据和文字。而变量提供存放信息的地方,表达式则可以完成较复杂的信息处理。
  6. JavaScript 可以实现 web 页面的人机交互。

JavaScript特性

  1. 解释性执行的脚本语言

    同其他脚本语言一样,JavaScript 也是一种解释性语言,其提供了一个非常方便的开发过程。JavaScript 的语法基本结构形式与 C 语言C++Java 十分类似。但在使用前,不像这些语言需要先编译,而是在程序运行过程中被逐行地解释。JavaScript 与 HTML 标识结合在一起,从而方便用户的使用操作。

  2. 基于对象的脚本语言

    其也可以被看作是一种面向对象的语言,这意味着 JavaScript 能运用其已经创建的对象。因此,许多功能可以来自于脚本环境中对象的方法与脚本的相互作用。

  3. 简单弱类型脚本语言

    其简单性主要体现在:首先,JavaScript 是一种基于 Java 基本语句和控制流之上的简单而紧凑的设计,从而对于使用者学习 Java 或其他 C 语系的编程语言是一种非常好的过渡,而对于具有 C 语系编程功底的程序员来说,JavaScript 上手也非常容易;其次,其变量类型是采用弱类型,并未使用严格的数据类型。

  4. 相对安全脚本语言

    JavaScript 作为一种安全性语言,不被允许访问本地的硬盘,且不能将数据存入服务器,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互。从而有效地防止数据的丢失或对系统的非法访问。

  5. 事件驱动脚本语言

    JavaScript 对用户的响应,是以事件驱动的方式进行的。在网页(Web Page)中执行了某种操作所产生的动作,被称为 “事件”(Event)。例如按下鼠标、移动窗口、选择菜单等都可以被视为事件。当事件发生后,可能会引起相应的事件响应,执行某些对应的脚本,这种机制被称为 “事件驱动”。

  6. 跨平台性脚本语言

    JavaScript 依赖于浏览器本身,与操作环境无关,只要计算机能运行浏览器,并支持 JavaScript 的浏览器,就可正确执行,从而实现了 “编写一次,走遍天下” 的梦想。

因此,JavaScript 是一种新的描述语言,其可以被嵌入到 HTML 文件中。JavaScript 语言可以做到响应使用者的需求事件(例如表单的输入),而不需要任何的网络来回传输资料。

所以当一位使用者输入一项资料时,此资料数据不用经过传给服务器(server)处理再传回来的过程,而直接可以被客户端(client)的应用程序所处理。

JavaScript优缺点

优点

  1. JavaScript减少网络传输

    在 JavaScript 这样的用户端脚本语言出现之前,传统的数据提交和验证工作均由用户端浏览器通过网络传输到服务器上进行。如果数据量很大,这对于网络和服务器的资源来说实在是一种无形的浪费。而使用 JavaScript 就可以在客户端进行数据验证。

  2. JavaScript方便操纵HTML对象

    JavaScript 可以方便地操纵各种页面中的对象,用户可以使用 JavaScript 来控制页面中各个元素的外观、状态甚至运行方式,JavaScript 可以根据用户的需要 “定制” 浏览器,从而使网页更加友好。

  3. JavaScript支持分布式运算

    JavaScript 可以使多种任务仅在用户端就可以完成,而不需要网络和服务器的参与,从而支持分布式的运算和处理。

  4. 快速的终端反应

    JavaScript 脚本为客户端编写,不需要服务器端支持就可运行。也不需要在客户端被编译提高速度优势。在用户电脑上作为脚本执行,依靠任务,结果几乎是立即完成的。例如,在发送到服务器之前,你可以校验任何客户的输入内容。 这样可以减少服务器上载的内容。

  5. 简洁性

    JavaScript 很容易学习和实现。它利用 DOM 模型, 提供大量的预编制的功能性对象代码,使得开发一个满足用户需要的脚本变得轻而易举。

  6. 用途广泛

    JavaScript 和其他语言可以很好的交互,并且广泛应用于各个领域。现在,有很多的方法可以通过 Node.js 服务器使用 JavaScript。如果你曾经使用 node.js 的 Express 框架 bootstrap,使用一个文档数据库如 mongodb,并且在客户前端使用 JavaScript,那么完全可以只使用 JavaScript 开发一个从前端到后端的 app 应用。

缺点

  1. 各浏览器厂商对 JavaScript 支持程度不同

    目前在互联网上有很多浏览器,如 Firefox、Internet Explorer、Opera 等,但每种浏览器支持 JavaScript 的程度是不一样的,不同的浏览器在浏览一个带有 JavaScript 脚本的主页时,由于对 JavaScript 的支持稍有不同,其效果会有一定的差距,有时甚至会显示不出来。

  2. “Web 安全性” 对 JavaScript 一些功能牺牲

    当把 JavaScript 的一个设计目标设定为 “Web 安全性” 时,就需要牺牲 JavaScript 的一些功能。因此,纯粹的 JavaScript 将不能打开、读写和保存用户计算机上的文件。其有权访问的唯一信息就是该 JavaScript 所嵌入的那个 Web 主页中的信息,简言之,JavaScript 将只存在于它自己的小小世界—Web 主页里。

  3. 关闭 JavaScript

    如果关闭浏览器的 JavaScript 支持,整个 JavaScript 代码就不会运行了。

  4. 文件下载

    JavaScript 文件可以在客户端电脑下载,任何人都可以阅读并且可以重复利用。

常用JS框架介绍

Jquery

介绍

JQuery 是一款同 prototype 一样优秀 js 开发库类,特别是对 css 和 XPath 的支持,使我们写 js 变得更加方便!如果你不是个 js 高手又想写出优秀的 js 效果,那么 JQuery 可以帮你达到目的!并且简介的语法和高的效率一直是 jQuery 追求的目标。

优点

注重简介和高效,js 效果有 yui-ext 的选择,因为 yui-ext 重用了很多 jQuery 的函数。

缺点

据说太嫩,历史不悠久。

EXT

介绍

基于 Yahoo UI 的扩展包 yui-ext 是具有 CS 风格的 Web 用户界面组件,能实现复杂的 Layout 布局,界面效果可以和 backbase 媲美,而且使用纯 JavaScript 代码开发。

真正的可编辑的表格 Edit Grid,支持 XML 和 **Json ** 数据类型,直接可以迁入 Grid。许多组件实现了对数据源的支持,例如动态的布局,可编辑的表格控件,动态加载的 Tree 控件、动态拖拽效果等等。从 1.0 beta 版开始同 Jquery 合作,推出基于 jQuery 的 Ext 1.0,提供了更多有趣的功能。

优点

结构化,类似于 Java 的结构,清晰明了,底层用到了 Jquery 的一些函数,使整合使用有了选择,最重要的一点是界面太让让人震撼了。

缺点

太过复杂,整个界面的构造过于复杂。

Dojo

介绍

Dojo 是目前最为强大的 JS 框架,它在自己的 Wiki 上给自己下了一个定义,Dojo 是一个用 JavaScript 编写的开源的 DHTML 工具箱。Dojo 很想做一个 “大一统” 的工具箱,不仅仅是浏览器层面的,野心还是很大的。

Dojo 包括 Ajax、Browser、Event、Widget 等跨浏览器 API,包括了 JS 本身的语言扩展,以及各个方面的工具类库,和比较完善的 UI 组件库,也被广泛应用在很多项目中,他的 UI 组件的特点是通过给 HTML 标签增加 TAG 的方式进行扩展,而不是通过写 JS 来生成,Dojo 的 API 模仿 Java 类库的组织方式。

用 Dojo 写 Web OS 可谓非常方便。Dojo 现在已经 4.0 了,Dojo 强大的地方在于界面和特效的封装,可以让开发者快速构建一些兼容标准的界面。

优点

库相当完善,发展时间也比较长,功能强大,据说利用 Dojo 的 io.bind() 可以实现 comet 看见其功能强大非一般,得到 IBM 和 SUN 的支持。

缺点

文件体积比较大,200 多 KB,初次下载相当慢,此外,Dojo 的类库使用显得不是那么易用,JS 语法增强方面不如 Prototype

Prototype

介绍

它是一个非常优雅的 JS 库,定义了 JS 的面向对象扩展,DOM 操作 API,事件等等,以 Prototype 为核心,形成了一个外围的各种各样的 JS 扩展库,是相当有前途的 JS 底层框架,值得推荐,感觉也是现实中应用最广的库类(RoR 集成的 AJAX JS 库),之上还有 Scriptaculous 实现一些 JS 组件功能和效果。

优点

基本底层,易学易用,甚至是其他一些js特效开发包的底层,体积算是最小的了。

缺点

如果说缺点,可能就是功能是他的弱项。

dScriptaculous

介绍

Scriptaculous 是基于 prototype.js 框架的 JS 效果。包含了 6 个 js 文件,不同的文件对应不同的 js 效果,所以说,如果底层用 prototype 的话,做 js 效果用 Scriptaculous 那是再合适不过的了,连大名鼎鼎的 digg 都在用他,可见不一般。

优点

基于 prototype 是最大的优点,由于使用 prototype 的广泛性,无疑对用户书锦上添花。

缺点

刚刚兴起,需要时间的磨练。

Mochikit

介绍

MochiKit 自称为一个轻量级的 js 框架。MochiKit 主要受到 Python 和 Python 标准库提供的很多便利之处的启发,另外还缓解了浏览器版本之间的不一致性。其中的 MochiKit.DOM 尤其方便,能够以比原始 JavaScript 更友好的方式处理 DOM 对象。

MochiKit.DOM 大部分都是针对 XHTML 文档定制的,如果与 MochiKit 和 Ajax 结合在一起,使用 XHTML 包装的微格式尤其方便。Mochikit 可以直接对字符串或者数字格式化输出,比较实用和方便。它还有自己的 js 代码解释器。

优点

MochiKit.DOM 这部分很实用,简介也是很突出的。

缺点

轻量级的缺点。

Mootools

介绍

MooTools 是一个简洁,模块化,面向对象的 JavaScript 框架。它能够帮助你更快,更简单地编写可扩展和兼容性强的 JavaScript 代码。Mootools 跟 prototypejs 相类似,语法几乎一样。但它提供的功能要比 prototypejs 多,而且更强大。比如增加了动画特效、拖放操作等等。

优点

可以定制自己所需要的功能,可以说是 prototypejs 的增强版。

缺点

不大不小,具体应用具体分析。

Moo.fx

介绍

Moo.fx 是 一个超级轻量级的 JavaScript 特效库(7k),能够与 prototype.js 或 mootools 框架一起使用。它非常快、易于使用、跨浏览器、符合标准,提供控制和修改任何 HTML 元素的 CSS 属性,包括颜色。它内置检查器能够防止用户通过多次或疯狂点击来破坏效果。moo.fx 整体采用模块化设计,所以可以在它的基础上开发你需要的任何特效。

优点

小块头有大能耐。

JavaScript应用场景

JavaScript 发展到现在几乎无所不能,主要应用在以下几个方面:

  • 网页特效
  • 服务端开发(Node.js)
  • 命令行工具(Node.js)
  • 桌面程序(Electron)
  • App(Cordova)
  • 控制硬件-物联网(Ruff)
  • 游戏开发(cocos2d-js)

JavaScript是什么总结

JavaScript 简称 “JS”,是一种具有函数优先的轻量级,解释型或即时编译型的高级编程语言。虽然它是作为开发 Web 页面的脚本语言而出名的,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。