ES6(ECMAScript 2015)是 JavaScript 发展史上的重要里程碑,它引入了大量现代化特性,让代码更简洁、结构更清晰。今天我们来梳理几个核心语法点,包括数字字面量的扩展、唯一标识符 Symbol 以及面向对象编程的 Class 机制。
数字字面量扩展
在 ES6 之前,我们处理二进制或八进制往往需要借助 parseInt 转换。现在可以直接使用字面量写法,直观且高效。
二进制与八进制
- 二进制:使用前缀
0b或0B - 八进制:使用前缀
0o或0O
let binary = 0b1010; // 二进制 1010,十进制为 10
console.log(binary);
let octal = 0o12; // 八进制 12,十进制为 10
console.log(octal);
这样写不仅可读性更强,也减少了手动转换出错的风险。
Symbol 类型
除了基础类型,ES6 还引入了 Symbol。它主要用于创建唯一的标识符,特别适合用作对象的键,避免属性名冲突。
const sym1 = Symbol('description');
const sym2 = Symbol('description');
// 即使描述相同,两个 Symbol 也不相等
console.log(sym1 === sym2); // 输出:false
在实际开发中,这能有效防止不同模块间因同名属性导致的意外覆盖。
类与继承
ES6 的 class 语法糖让面向对象编程更加直观。虽然底层仍是原型链,但声明方式更接近传统 OOP 语言。
定义类
class Parent {
constructor(name) {
this.name = name;
}
greet() {
console.log(`Hello, my name is ${this.name}.`);
}
}
继承机制
子类通过 extends 关键字继承父类。需要注意的是,如果在子类中定义了构造函数,必须先调用 super(),否则无法访问 this 关键字并会抛出错误。
class Child extends Parent {
constructor(name) {
super(name); // 调用父类构造函数初始化 this
}
greet() {
console.log(`Hello from ${this.name}, I am a child.`);
}
}
const child = new Child('Alice');
child.greet(); // 输出:Hello from Alice, I am a child.
掌握这些基础语法,能帮助你更好地构建现代前端应用架构。后续遇到复杂场景时,这些特性往往是解决问题的关键切入点。


