哪里有 JS 的源码?

4,515 阅读3分钟

先说结论:一门语言是没有源码的。就像 26 个英文字母,汉语的拼音或偏旁,它们都算不上是“源码”,语言它只是一套语法标准和编程范式。

image.png

Stackoverflow 上也有类似的问答:

Where is JavaScript?

In short...

  1. Where is the source code of JavaScript itself? Something like jquery.jsbackbone.js ... where is the "javascript.js"?
  2. Who is the authority that establishes the requirements for JavaScript? While the custodian of Java is clearly Oracle, I don't see any counterpart "owner" for JavaScript.

JavaScript 自身的源码在哪里? 谁在管理和制定 JavaScript 的规则?

回答:

JavaScript 语言没有源码,它只是定义一套标准和编程范式,由 JavaScript 引擎去用代码实现。

1) JS 引擎

如果一定要给 JS 找一个源码的话,那就是 JS 引擎了。 en.wikipedia.org/wiki/JavaSc… JavaScript引擎 - 维基百科,自由的百科全书

由浏览器(或运行环境)去选择哪种引擎

JS 运行环境,都有它们自己的 js 引擎:

  • Firefox → SpiderMonkey
  • Chrome → V8
  • Safari → JavaScriptCore
  • IE → Chakra
  • Node.js → V8
  • Edge → V8

你可以认为下面这些,就是所谓 JS 自身的源码。我只找到了这些,但我并不打算看

2) 谁拥有 JavaScript?

JS 已经20多岁,快奔三了,和现在咱们这些前端顶梁柱的岁数差不多。它的童年命运有些曲折离奇 — 它太抢手了。感兴趣的可以看一下 JavaScript 20 年

  • 出生地:1995 年生于网景公司 “Netscape”。1995年,网景员工布兰登·艾克,在5月份花了10天设计出了这个脚本语言的原型,取名为“Mocha”,接着又改名为“LiveScript”,后来为了搭上 Java 这个编程语言“热词”,将其临时改名为 JavaScript
  • 维护方:还是网景。后来改名为 Mozilla,也就是火狐浏览器的诞生地,现在的 JS 的语言模型规范,就是由 Mozilla 维护的。mdn.io/
  • 商标拥有者:Oracle,JavaScript的商标一直是被 Oracle 注册的。
  • 挑战者:IE。IE 在和网景的浏览器大战中,“逆向工程” 了大量 JavaScript 解释器内容,创造了 “JScript”,也在此基础上加入了不少 IE专属对象,这导致了这门语言标准化日渐缺失。(我曾经一度把 IE 当成一个搅局者,当了解 JS 和 浏览器发展的历史后,发现 IE 的存在,其实在很大程度上推动了计算机信息产业的进步,它很有想法,也做了很多有意义的创举,只是表现得有些孤傲不合群)
  • 话事人(标准化):ECMA(欧洲计算机制造商协会)。**网景在浏览器大战中不占优势,浏览器脚本语言标准开始四分五裂,这时候需要有个能主持公道的第三方组织。1996 年 11 月,网景向 ECMA 呈递了 JavaScript 的语言标准,请求得到协会的保护、宣传和推广。随即 ECMA-262草案出台。 ECMA-262 - Ecma International

ECMA-262草案

从此 JavaScript = ECMAScript + DOM + BOMJavaScript 的标准变得没有具体的维护者了,而是由 ECMA 和各大浏览器厂商(DOM 和 BOM 接口的实现)共同参与定制。


ES5 之后,ECMA 每年都会给这门语言发布一些新特性。从 TypeScript 库 lib 目录可以看出历届 es 版本的发展历程。

思维导图