返回

符号云游: JS和TS里的大千世界

前端

JavaScript符号的起源与演化

早在 2015 年,ES6 标准的出现,标志着 JavaScript 正式步入了符号时代。为了提升代码的可读性和维护性,引入了一系列全新的符号,包括箭头函数 (=>)、展开运算符 (...)、解构赋值 ({}) 以及模板字符串 (``)。

ES7 标准紧随其后,带来了指数运算符 (**) 和 async/await 语法,进一步扩充了 JavaScript 符号家族。

符号的洪流在 2020 年的 ES11 标准中达到高潮,引入了可选链运算符 (?.) 和空值合并运算符 (??),让 JavaScript 成为了一种更加强大的编程语言。

JS和TS中的符号种类繁多,各有千秋

在 JavaScript 中,符号可分为以下几类:

  • 运算符:+, -, *, /, %, &&, ||, !, ===, !==, ==, !=, <, >, <=, >=
  • 分隔符:, ; {} [] ()
  • let, const, function, class, if, else, switch, case, break, continue, return, throw, try, catch, finally
  • 保留字:abstract, arguments, await, boolean, byte, char, class, const, debugger, default, delete, double, enum, eval, export, extends, false, final, finally, float, for, function, goto, if, implements, import, in, instanceof, int, interface, long, native, new, null, package, private, protected, public, short, static, super, switch, synchronized, this, throw, throws, transient, true, try, typeof, var, void, volatile, while, with
  • 注释://, /*, */

在 TypeScript 中,符号种类更加丰富,除了 JavaScript 中的符号外,还包括了以下类型:

  • 类型注解:number, string, boolean, void, undefined, null, never, enum, tuple, array, interface, class
  • 修饰符:public, protected, private, readonly, abstract, static, override
  • 泛型:, <K, V>,

符号的妙用:提升代码的可读性与可维护性

符号的使用可以大大提升 JavaScript 代码的可读性和可维护性。例如,箭头函数 (=>) 可以简化函数的语法,而展开运算符 (...) 可以轻松地将数组或对象展开为参数或属性列表。

// 使用箭头函数简化函数语法
const add = (a, b) => a + b;

// 使用展开运算符将数组展开为参数列表
const numbers = [1, 2, 3, 4, 5];
const sum = (...args) => args.reduce((a, b) => a + b, 0);

// 使用展开运算符将对象展开为属性列表
const person = { name: 'John', age: 30 };
const newPerson = { ...person, job: 'developer' };

结语

符号在 JavaScript 和 TypeScript 中扮演着重要的角色,它们可以提升代码的可读性、可维护性,让代码更加简洁和优雅。随着 JavaScript 和 TypeScript 的不断发展,新的符号还会不断涌现,让编程更加高效和有趣。