什么是 JavaScript?
JavaScript 最初的目的是为了“赋予网页生命”。
这种编程语言我们称之为脚本。它们可以写在 HTML 中,在页面加载的时候会自
动执行。
脚本作为纯文本存在和执行。它们不需要特殊的准备或编译即可运行。
这方面,JavaScript 和 Java 有很大的区别。
为什么叫 JavaScript?
JavaScript 在刚诞生的时候,它的名字叫 “LiveScript”。但是
因为当时 Java 很流行,所以决定将一种新语言定位为 Java 的“弟
弟”会有助于它的流行。
随着 JavaScript 的发展,它已经变成了一门独立的语言,同时也
有了自己的语言规范 ECMAScript。现在,它和 Java 之间没有任何
关系。
现在,JavaScript 不仅仅是在浏览器内执行,也可以在服务端执行,甚至还能
在任意搭载了 JavaScript 引擎 的设备中都可以执行。
浏览器中嵌入了 JavaScript 引擎,有时也称作 JavaScript 虚拟机。
不同的引擎有不同的“代号”,例如:
� V8 —— Chrome 和 Opera 中的 JavaScript 引擎。
� SpiderMonkey —— Firefox 中的 JavaScript 引擎。
� ……还有其他一些代号,像“Trident”,“Chakra”用于不同版本 的 IE ,
“ ChakraCore ” 用 于 Microsoft Edge , “ Nitro ” 和 “ SquirrelFish ” 用 于
Safari,等等。
上面这些名称很容易记忆,因为经常出现在网上开发者的文章中。我们也会用到
这些名称。例如:某个新的功能,如果“JavaScript 引擎 V8 是支持的”,那么
我们可以认为这个功能大概能在 Chrome 和 Opera 中正常运行。
引擎是如何工作的?
引擎很复杂,但是基本原理很简单。
1. 引擎(通常嵌入在浏览器中)读取(“解析”)脚本。
2. 然后将脚本转化(“编译”)为机器语言。
3. 然后这机器语言代码快速地运行。
引擎会对流程中的每个阶段都进行优化。它甚至可以在运行时监视编译的脚本,
分析数据流并根据这些对机器代码应用优化。最后,脚本会执行地非常快。