Page 151 - 你不知道的JavaScript(下卷)
P. 151
这就很清楚地表明了,属性符号实际上并不是隐藏或不可访问的,因为总可以通过
Object.getOwnPropertySymbols(..) 列表看到它。
内置符号
ES6 支持若干预先定义好的内置符号,它们可以暴露 JavaScript 对象值的各种元特性。但
是,这些符号并不是像一般设想的那样注册在全局符号表里。
相反,它们作为 Symbol 函数对象的属性保存。比如 2.9 节中介绍的 Symbol.iterator 值:
var a = [1,2,3];
a[Symbol.iterator]; // 原生函数
规范使用 @@ 前缀记法来指代内置符号,最常用的一些是:@@iterator、@@toStringTag、
@@toPrimitive。规范还定义了一些其他符号,但是可能没那么常用。
关于如何在元编程中应用这些内置符号,参见 7.3 节。
2.14 小结
ES6 为 JavaScript 增加了很多新的语法形式,所以要学的太多了!
这些新语法形式中大多数的设计目的都是消除常见编程技巧中的痛点,比如为函数参数设
定默认值以及把参数的“其余”部分收集到数组中。解构是一个强有力的工具,用于更精
确地表达从数组和嵌套对象中赋值。
而像 => 箭头函数这样的特性看起来似乎是为了使代码更简洁的语法,但实际上它有非常
特别的行为特性,应该只在适当的时候使用。
扩展 Unicode 支持、新的正则表达式技巧,甚至新的基本类型 symbol 都使 ES6 的语法发展
的更加完善。
128 | 第 2 章
图灵社区会员 avilang(1985945885@qq.com) 专享 尊重版权