@demonly
2017-10-13T12:26:02.000000Z
字数 678
阅读 878
JavaScript
obj instanceof Array;
// 等价于
Array[Symbol.hasInstance](obj);
Symbol.isConcatSpreadable
布尔值,表示在 concat() 方法中是否被分解为独立元素。
Symbol.match、Symbol.replace、Symbol.search、Symbol.split
对应的正则表达式方法,重写这个方法能够执行更加复杂的匹配。
Symbol.toPrimitive
定义对象被转化为原始值时应当执行的操作,接受一个类型提示作为参数,参数的值可以为 "number"、"string" 或者 "default"。
对于大多数标准对象,数字模式下优先调用 valueOf() 方法,其次调用 toString() 方法,字符串模式反之。如果结果都不为原始值,则抛出错误。
Symbol.toStringTag
定义 toString() 方法的返回值。
Symbol.unscopables
定义在 with 语句中需要忽略的标识符,例如
let obj = {foo: 'bar'}
obj[Symbol.unscopables] = {foo: true}
console.log(obj.foo); // "bar"
with (obj) console.log(foo); // foo is not defined
Symbol.iterator
返回用于 for-of 循环的默认迭代器
Symbol.species
创建派生类时使用的构造函数