先说结论:一门语言是没有源码的。就像 26 个英文字母,汉语的拼音或偏旁,它们都算不上是“源码”,语言它只是一套语法标准和编程范式。
Stackoverflow 上也有类似的问答:
In short...
- Where is the source code of JavaScript itself? Something like
jquery.js,backbone.js... where is the "javascript.js"? - 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 自身的源码。我只找到了这些,但我并不打算看
- SpiderMonkey:
- V8: Monorail - v8 - V8 JavaScript Engine - Monorail
- JavaScriptCore:
- JScript: Chakra_
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 + BOM 。JavaScript 的标准变得没有具体的维护者了,而是由 ECMA 和各大浏览器厂商(DOM 和 BOM 接口的实现)共同参与定制。
自 ES5 之后,ECMA 每年都会给这门语言发布一些新特性。从 TypeScript 库 lib 目录可以看出历届 es 版本的发展历程。