ES6 新特性详解
ES6(ECMAScript 2015)是 JavaScript 发展史上的重要里程碑,它引入了许多现代化语法,让代码更简洁、逻辑更清晰。今天我们重点聊聊数字字面量、Symbol 类型以及 Class 类的继承机制。
数字字面量的扩展
在 ES6 之前,我们主要使用十进制。现在,二进制和八进制有了直接的写法,处理底层数据时更方便。
- 二进制:使用前缀
0b或0B - 八进制:使用前缀
0o或0O
let binary = 0b1010; // 二进制 1010,对应十进制 10
console.log(binary);
let octal = 0o12; // 八进制 12,对应十进制 10
console.log(octal);
Symbol 类型
Symbol 是 ES6 引入的一种新的原始数据类型,主要用于创建唯一且不可变的标识符。它的核心价值在于解决对象键名冲突的问题,即使描述相同,生成的 Symbol 也不相等。
const sym1 = Symbol('description');
const sym2 = Symbol('description');
// 两个 Symbol 实例互不相等
console.log(sym1 === sym2); // 输出:false
在实际开发中,这常用于定义对象的私有属性,避免被外部意外覆盖。
Class 与继承
Class 提供了一种更清晰的面向对象编程模板,定义了对象的属性和方法。虽然本质仍是基于原型的实现,但语法上更接近传统 OOP 语言。
基础类定义
class Parent {
constructor(name) {
this.name = name;
}
greet() {
console.log(`Hello, my name is ${.name}.`);
}
}


