ECMAScript 是由 ECMA 国际(前身为欧洲计算机制造商协会)制定的一种脚本语言规范。它是一种标准化的编程语言,通常被用作实现 JavaScript 的基础。尽管许多人将 ECMAScript 和 JavaScript 视为同义词,但实际上 JavaScript 是 ECMAScript 的一种具体实现。
主要特性
- 动态类型:变量在运行时确定其数据类型。
- 基于原型的继承:通过原型链来实现对象的继承。
- 函数式编程支持:包括高阶函数、闭包等。
- 异步编程模型:如 Promise 和 async/await 语法。
- 模块化:ES6 引入了模块系统,允许代码的复用和封装。
版本历史
- ECMAScript 1 (1997): 初版发布。
- ECMAScript 3 (1999): 增加了许多新功能,是广泛使用的版本之一。
- ECMAScript 5 (2009): 引入严格模式,增加新的数组方法等。
- ECMAScript 6/2015 (2015): 大规模更新,引入类、模块、箭头函数等。
- 后续版本 (每年更新): 自 ES6 后,ECMAScript 开始采用年度发布的方式,每个新版本都会带来一些改进和新增功能。
示例代码
以下是一些常见的 ECMAScript 代码示例:
-
箭头函数:
javascript深色版本
const add = (a, b) => a + b; console.log(add(5, 3)); // 输出 8
-
模板字符串:
javascript深色版本
const name = "Alice"; const greeting = `Hello, ${name}!`; console.log(greeting); // 输出 Hello, Alice!
-
解构赋值:
javascript深色版本
const person = { firstName: 'John', lastName: 'Doe' }; const { firstName, lastName } = person; console.log(firstName, lastName); // 输出 John Doe
-
类和继承:
javascript深色版本
class Animal { constructor(name) { this.name = name; } speak() { console.log(`${this.name} makes a noise.`); } } class Dog extends Animal { speak() { console.log(`${this.name} barks.`); } } const dog = new Dog("Rex"); dog.speak(); // 输出 Rex barks.
-
Promise:
javascript深色版本
const fetchData = () => { return new Promise((resolve, reject) => { setTimeout(() => resolve("Data fetched"), 1000); }); }; fetchData() .then(data => console.log(data)) // 输出 Data fetched .catch(error => console.error(error));
-
async/await:
javascript深色版本
const fetchDataAsync = async () => { try { const data = await new Promise(resolve => setTimeout(() => resolve("Data fetched"), 1000)); console.log(data); // 输出 Data fetched } catch (error) { console.error(error); } }; fetchDataAsync();