三者共同部分是 Script. 所以,它们的关系就是它们都是脚本。
es是一种规定,e的意思是ECMA,相当于中华人民共和国;s的意思是Script,相当于国家语言文字工作委员会。国家有关部门规范国家的语言,计算机也有类似的组织规范计算机语言。
js是一门语言,就好比人类语言有英语、俄语、日语,同意计算机也分为Java、PHP、Python,所以假定js就是你所熟悉的中文。
ts是一种方言,中文方言有很多,比如上海话。js的方言也不少,比如CoffeeScript。你跑到深圳说上海话,大部分人是听不懂的,所以需要翻译成普通话。同样的,ts也需要转化为js才能让低版本浏览器识别。
相关语言
脚本语言是比较多的,一般的脚本语言的执行只同具体的解释执行器有关,所以只要系统上有相应语言的解释程序就可以做到跨平台。
较为热门的脚本语言有Lua、JavaScript等,功能都比较强大,但也有明显的缺点,例如Lua实现面向对象比较麻烦, 而JavaScript和C++相互调用非常困难。
准确的说:es(ECMAScript)是js(javascript)的标准。
JavaScript是语言,而ECMAScript(即ECMA-262,ECMA是欧洲计算机制造商协会)是为了规范JS而制定的标准,ECMAScript有不同版本,最近的版本是第10版,发布于2019.6。
完整的JavaScript的实现包含以下几个部分:
核心(ECMAScript):由ECMA-262定义并提供核心功能。
文档对象模型(DOM):提供与网页内容交互的方法与接口。
浏览器对象模型(BOM):提供与浏览器交互的方法与接口。
可以用下面这张图进行粗略的记忆
具体来说,ECMA-262定义了一门语言的如下部分
语法
类型
语句
关键字
保留字
操作符
全局对象
ECMA-262第6版,俗称ES6、ES2015或ES Harmony(和谐版),于2015年6月发布。这一版包含了大概这个规范有史以来最重要的一批增强特性。ES6正式支持了类、模块、迭代器、生成器、箭头函数、期约、反射、代理和众多新的数据类型。
DOM Level 1 在1998.10成为W3C的推荐标准。它由DOM Core 和DOM HTML两个部分组成。DOM Core提供了一种映射XML文档,从而方便访问和操作文档任意部分的方式;DOM HTML扩展了前者,并增加了特定于HTML的对象和方法。
DOM Level 2 新增了以下模块,以支持新的接口。
DOM视图:描述追踪文档不同视图(如应用CSS样式前后的文档)的接口。
DOM事件:描述事件及事件处理的接口。
DOM样式:描述处理元素CSS样式的接口。
DOM遍历和范围:描述遍历和操作DOM树的接口。
DOM Level 3 增加了以统一的方式加载和保存文档的方法(包含在一个叫DOM Load and Save的新模块中),还有验证文档的方法(DOM Validation)。
DOM Level 4 新增Mutation Observers,替代 了Mutation Events .
BOM 主要针对浏览器窗口和子窗口(frame),不过人们通常会把任何特定于浏览器的扩展都归在 BOM 的范畴内。 下面就是这样一些扩展。
弹出新浏览器窗口的能力;
移动、缩放和关闭浏览器窗口的能力;
navigator对象,提供关于浏览器的详尽信息;
location对象,提供浏览器加载页面的详尽信息;
screen对象,提供关于用户屏幕分辨率的详尽信息;
performance对象,提供浏览器内存占用、导航行为和时间统计的详尽信息;
对cookie的支持;
其他自定义对象,如XMLHttpRequest和IE的ActiveXObject。
出处:《JavaScript高级程序设计(第4版)》Matt Frisbie著 李松峰译
js中,不用 var 定义的变量都被视为全局变量。所以你的这个 es 应该是一个全局对象。相当于 C#中的命名空间。我们在 js 中写
es.aa ="3"
等同于:
var es ={
aa:"3"
}
或者
es={};
es.aa ="3"
不知道你明白我的意思不。。