【SSD系列】傻傻的,连JavaScript,ECMAScript和ECMA-262都分不清楚 | 8月更文挑战

3,872 阅读3分钟

这是我参与8月更文挑战的第1天,活动详情查看:8月更文挑战

什么是JavaScript?

JavaScript一种脚本语言,是一种动态类型、弱类型、基于原型的语言。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

JavaScript诞生

刚开始浏览器只能用来浏览,不具备与访问者互动的能力。

JavaScript这样网络脚本语言,解决了浏览器的交互问题。

为什么叫 JavaScript

趁 Java 的热度,临时把 LiveScript 改名为 JavaScript,JavaScript 和 Java 没什么关系。

JavaScript主要由谁开发

34 岁的程序员Brendan Eich,10天 设计出了JavaScript。

  (1)借鉴C语言的基本语法;

  (2)借鉴Java语言的数据类型和内存管理;

  (3)借鉴Scheme语言,函数提升到第一等公民的地位;

  (4)借鉴Self语言,基于原型(prototype)的继承机制。

Javascript的10个设计缺陷

  1. 不适合开发大型程序
  2. 非常小的标准库
  3. null 和 undefined
  4. 全局变量难以控制
  5. 自动插入行尾分号
  6. 加号运算符
  7. NaN
  8. 数组和对象的区分
  9. == 和 ===
  10. 基本类型的包装对象

详情参见: JavaScript 的十个设计缺陷

ECMAScript 是个啥

ECMAScript是一种由Ecma国际通过ECMA-262标准化的脚本程序设计语言。

由 ECMA-262定义的 ECMAScript与Web浏览器没有依赖关系。实际上,这门语言本身并不包含输入和输出定义。

我们常见的 Web 浏览器只是 ECMAScript 实现可能的宿主环境之一。宿主环境不仅提供基本的 ECMAScript 实现,同时也会提供该语言的扩展,以便语言与环境之间对接交互。

ECMA-262 是个啥

Ecma International是个行业标准组织,它所通过的标准都是ECMA-这样的编号,然后可以有另外的标准名字。 为了让最初的JavaScript与最初的JScript能遵循同一套标准发展而诞生的ECMAScript,正好排到了作为Ecma的262号标准而已,所以得到ECMA-262编号。

ECMAScript历史版本

版本时间
ECMAScript 1.01997
ECMAScript 2.01998-06
ECMAScript 3.01999-12
ECMAScript 3.12008-07
ECMAScript 5.02009-12
ECMAscript 5.12011-06
ECMAscript 62015-06

JavaScript 和 ECMAScript

虽然JavaScript和ECMAScript通常被人们用来表达相同的含义。但是JavaScript的含义却比ECMA-262规定的要多得多。

一个完成 的JavaScript实现应该由下列三个不同的部门组成

  1. 核心 ECMAScript: 描述了该语言的语法和基本对象

  2. 文档对象模型 DOM :提供处理网页内容的方法和接口

    ​ 核心对象是 window, Node等

  3. 浏览器对象模型 BOM :提供与浏览器交互的方法和接口

node 和 javascript

node = ECMAScript + nodejs API
javascript = ECMAScript + web API

详解 JavaScript 的发展史

JavaScript 的十个设计缺陷

为什么ECMAscript标准叫ECMA-262?

JavaScript高级程序设计(第3版)