JavaScript 是一种轻量级的脚本语言。所谓“脚本语言”(script language),通俗来说,意思是它不具备开发操作系统的能力,而是只用来编写控制其他大型应用程序(比如浏览器)的“脚本”。JavaScript 也是一种嵌入式(embedded)语言。它本身提供的核心语法不算很多,只能用来做一些数学和逻辑运算。JavaScript 本身不提供任何与 I/O(输入/输出)相关的 API,都要靠宿主环境(host)提供,所以 JavaScript 只合适嵌入更大型的应用程序环境,去调用宿主环境提供的底层 API。目前,已经嵌入 JavaScript 的宿主环境有多种,最常见的环境就是浏览器,另外还有服务器环境,也就是 Node 项目。
因为javaScriptn能够嵌入到多种浏览器中,所以按F12,在浏览器控制台中直接输入javaScript代码就可以运行了,这也就造成了javaScript简单,易学的特性,不需要像其它编程语言必须安装复杂的运行环境。
从语法角度看,JavaScript 语言是一种“对象模型”语言。但是,JavaScript 并不是纯粹的“面向对象语言”,还支持其他编程范式(比如函数式编程)。这导致几乎任何一个问题,JavaScript 都有多种解决方法。所以javaScriptshi十分的灵活多用。
JavaScript 的核心语法部分相当精简,只包括两个部分:基本的语法构造(比如操作符、控制结构、语句)和标准库(就是一系列具有各种功能的对象比如Array
、Date
、Math
等)。除此之外,各种宿主环境提供额外的 API(即只能在该环境使用的接口),以便 JavaScript 调用。以浏览器为例,它提供的额外 API 可以分成三大类。
上面为什么说道javaScript是一种“对象模型”语言,但却又和java不一样,不完全是“面对对象”的语言,导致这个“半像不像”的因素,得从javaScript的发展历史说起。
要明白这个问题,得先从javaScript的发展史开始说起。
1995年,Netscape 公司雇佣了程序员 Brendan Eich 开发这种网页脚本语言。Brendan Eich 有很强的函数式编程背景,希望以 Scheme 语言(函数式语言鼻祖 LISP 语言的一种方言)为蓝本,实现这种新语言。1995年5月,Brendan Eich 只用了10天,就设计完成了这种语言的第一版。它是一个大杂烩,语法有多个来源,几乎全靠抄。
Netscape 公司的这种浏览器脚本语言,最初名字叫做 Mocha,1995年9月改为 LiveScript。12月,Netscape 公司与 Sun 公司(Java 语言的发明者和所有者)达成协议,后者允许将这种语言叫做 JavaScript。这样一来,Netscape 公司可以借助 Java 语言的声势,而 Sun 公司则将自己的影响力扩展到了浏览器。
之所以起这个名字,并不是因为 JavaScript 本身与 Java 语言有多么深的关系,而是因为 Netscape 公司已经决定,使用 Java 语言开发网络应用程序,JavaScript 可以像胶水一样,将各个部分连接起来。当然,后来的历史是 Java 语言的浏览器插件失败了,JavaScript 反而发扬光大。也正是这个原因,javaScript引用了大量的java语法,甚至连许多基本的API都采用相同的命名,以便于java程序员快速的上手。我们知道java是一门“面对对像”语言,而javaScript的语法大量借鉴,引用了java的规则,这也就造成了javaScript也符合了“面对对象”的特征,但由于两种语言毕竟作用域不同,受许多因素的限制,还是会又许多不一致的地方。
从整体来说,java和javaScript它们只是比较相似,但总归还是两种不一样的语言,但是彼此存在密切联系。JavaScript 的基本语法和对象体系,是模仿 Java 而设计的。但是,JavaScript 没有采用 Java 的静态类型。正是因为 JavaScript 与 Java 有很大的相似性,所以这门语言才从一开始的 LiveScript 改名为 JavaScript。基本上,JavaScript 这个名字的原意是“很像Java的脚本语言”。
JavaScript 语言的函数是一种独立的数据类型,以及采用基于原型对象(prototype)的继承链。这是它与 Java 语法最大的两点区别。JavaScript 语法要比 Java 自由得多。另外,Java 语言需要编译,而 JavaScript 语言则是运行时由解释器直接执行。
总之,JavaScript 的原始设计目标是一种小型的、简单的动态语言,与 Java 有足够的相似性,使得使用者(尤其是 Java 程序员)可以快速上手。
1995年12月4日,Netscape 公司与 Sun 公司联合发布了 JavaScript 语言,对外宣传 JavaScript 是 Java 的补充,属于轻量级的 Java,专门用来操作网页。所以说javaScript和java还是有很大的关系的。
javaiScript是一种轻量级的“脚本语言”,其用途并非我们常使用的前端开发,已经衍生到了多个领域。javaScript由于使用了太多了java规则和语法,所以java工程师们是可以很轻松的学会javaScript的。加油吧!同志们,未来的全栈工程师就是你!