JavaScript
About 2 min
JavaScript
简称JS,文件以.js为后缀。
ECMAScript
ECMAScript (简称ES)是JavaScript的标准化版本,由ECMA国际(前身为欧洲计算机制造商协会)的TC39技术委员会负责制定。以下是ECMAScript的主要版本迭代历程:
ECMAScript 1(1997年)
- 初始版本,确立了JavaScript作为一门编程语言的基础。
ECMAScript 2(1998年)
- 一个小更新,增加了一些新特性和错误修复。
ECMAScript 3(1999年)
- 引入了正则表达式、
try...catch异常处理等重要特性。
- 引入了正则表达式、
ECMAScript 4(未能发布)
- 计划引入面向对象编程、模块化等特性,但由于争议过大,该版本最终被废弃。
ECMAScript 5(2009年)
- 重新聚焦于小的、一致的更新,引入了严格模式、JSON等。
ECMAScript 5.1(2011年)
- 一个小更新,主要是一些bug修复和一些新的API。
ECMAScript 6(ES2015,2015年)
- 引入了类、模块、箭头函数、模板字符串、解构赋值、
let和const、Promise、Map和Set等大量新特性。
类演示
模块演示
箭头函数示例
其余新特性示例
- 引入了类、模块、箭头函数、模板字符串、解构赋值、
ECMAScript 2016(ES2016)
- 引入了
Array.prototype.includes方法和指数运算符(**)。
- 引入了
ECMAScript 2017(ES2017)
- 引入了
async/await、Object.values和Object.entries等。
- 引入了
ECMAScript 2018(ES2018)
- 引入了
Promise.prototype.finally、Object.getOwnPropertyDescriptors等。
- 引入了
ECMAScript 2019(ES2019)
- 引入了
Array.prototype.flat和Array.prototype.flatMap、String.prototype.trimStart和String.prototype.trimEnd等。
- 引入了
ECMAScript 2020(ES2020)
- 引入了空值合并运算符(
??)、globalThis、Promise.allSettled等。
- 引入了空值合并运算符(
ECMAScript 2021(ES2021)
- 引入了逻辑赋值运算符(
||=和&&=)、Promise.any等。
- 引入了逻辑赋值运算符(
ECMAScript 2022(ES2022)
- 引入了
Array.prototype.at、String.prototype.replaceAll、Object.hasOwn、FinalizationRegistry等。
- 引入了
ECMAScript 2023(ES2023)
- 引入了
Array.prototype.findLast、Array.prototype.findLastIndex、String.prototype.codePoints等。
- 引入了
ECMAScript 2024(ES2024)(预计)
- 正在讨论中,预计会引入新的语法和API。
ECMAScript规范每年都会更新,引入新特性以保持JavaScript的现代化和竞争力。开发者需要关注这些更新,以便利用新特性提高开发效率和代码质量。
声明数据
var
var是ES6之前JavaScript中唯一的变量声明关键字。- 它有函数作用域,而不是块作用域(例如
if语句或for循环)。 - 可以被重新赋值(可变)。
var message = 'Hello';
message = 'Hello Vue'; // 可以重新赋值
let
let是ES6中引入的,它有块作用域。- 可以被重新赋值(可变)。
let message = 'Hello';
message = 'Hello Vue'; // 可以重新赋值
const
const也是ES6中引入的,它有块作用域。- 一旦声明,其值不能被重新赋值(不可变),但若其值为对象或数组,则对象或数组内部的属性可以改变。
const message = 'Hello';
// message = 'Hello Vue'; // 错误:Assignment to constant variable.
