小鱼资料库

小鱼资料库 > 计算机 > 前端 >

JavaScript的特点有哪些

解释型语言
JavaScript 是一种解释型语言,和解释型语言相对的是编译型语言。解释型语言直接在运行环境中执行代码,所以一般来说,与编译型语言相比,解释型语言的开发更为容易。特别是 JavaScript,其运行环境是已经普及的浏览器,所以能够很容易地尝试开发。这是其他程序设计语言所不能比拟的。解释型语言的劣势在于,其运行速度通常都会慢于编译型语言,不过这也只是理论上的情况。现在,解释型语言和编译型语言之间的界线正在变得越来越模糊。编译型语言在有了足够快速的编译器和功能强大的开发环境之后,也能实现和解释型语言相匹敌的开发难易度。同时,解释型语言由于使用了 JIT(Just In Time)这种能够在运行中进行编译的技术,使得运行速度得以改善。如今,在选择程序设计语言时,比起选择编译型语言还是解释型语言,更重要的是考虑语言的设计目的。是为了使开发过程变得轻松还是为了提高执行效率,语言最初的设计理念不同,其性质自 然会有差异。设计 JavaScript 之初,优先考虑的是使开发过程变得轻松,因此提供了多种特性。
类似于 C 和 Java 的语法结构
JavaScript 的语法结构与 C 和 Java 相似。JavaScript 同样有 if 或 while 这类关键字,其语法结也与 C 和 Java 类似。它们乍一看很像,因此有这些语言开发经验的人很容易就能熟悉 JavaScript。不过需要注意的是,它们之间的相似性其实并不如表面看起来的那么强。
动态语言
JavaScript 与 C 和 Java 所不同的一点在于,JavaScript 是一种动态语言,将在之后详述。单从代码的角度看,动态语言的变量和函数是不指定返回值类型的。JavaScript之所以被设计成动态语言,和选择将其设计为解释型语言的理由一样,都是优先考虑了开发难易度的结果。对解释型语言以及动态语言的特 性的喜好虽然见仁见智,但语言本身并没有高下优劣之分。
基于原型的面向对象
解释型动态语言并不少见,现有的较为知名的脚本语言大多都属于这一类型。不过基于原型的面向 对象特性,使得 JavaScript 与它们有所不同。基于原型的面向对象特性和基于类的面向对象特性是有所差别的,在此请先了解这一点即可,更为详细的内容将会在之后详述。目前,被称为面向对象语言的程序 设计语言,大多提供了基于类的面向对象语言功能。JavaScript 虽然并不是第一个采用基于原型的面向对象特性的语言,不过可以说是这类语言中最为著名的。同样,基于原型与基于类的面向对象语言之间的差异,也主要是个人喜好的区别,而并非是孰优孰劣的问题。
字面量的表现能力
字面量的表现能力是 JavaScript 开发生产力得以提高的一个重要原因。在 Perl 之后,很多语言都提供了功能强大的字面量功能。虽然其中表现突出的不止 JavaScript 一种,不过由于它的字面量功能相对来说非常优秀,所以作为语言特点之一列举于此。
函数式编程
最后来介绍一下函数式编程。函数式编程是一种历史悠久,而又在最近颇为热门的话题。函数式编程在面向对象一词诞生以前就已经存在,不过它在很长的一段时间里都被隐藏于过程式编程(面向对象 也是过程式编程的一种)的概念之下。然而现在这种状况正在逐步发生改变,JavaScript 正是这一改变过 程中的一部分。尽管 JavaScript 能直接支持的程序设计范式在本质上还是过程式的,但由于具备了匿名函 数,可以把函数作为对象来使用,所以同时也能够支持函数式编程。