Symbol.toStringTag
该符号作为一个属性表示“一个字符串,该字符串用于创建对象的默认字符串描述。”由内置方法Object.prototype.toString()使用。
通过toString()方法获取对象标识时,会检索由Symbol.toStringTag指定的实例标识符,默认为“Obejct”
Symbol.unscopables
根据ECMAScript规范,这个符号作为一个属性表示“一个对象,该对象所有的以及继承的属性,都会从关联的with环境绑定中排除”。
注意:不推荐使用with,因此也不推荐使用Symbol.unscopables
Object类型
ECMAScript中的对象其实就是一组数据和功能的集合。对象通过new操作符后跟对象类型的名称来创建。开发者可以通过创建Object类型的实例来创建自己的对象,然后再给对象添加属性和方法:
let o = new Object();
ECMAScript只要求给构造函数提供参数时使用括号。如果没有参数,那么完全可以省略(不推荐):
let o = new Object;
每个Object实例都有如下属性和方法
- constructor:用于创建当前对象的函数。在前面的例子中,这个属性的值就是Object()函数。
- hasOwnProperty(propertyName):用于判断当前对象实例(不是原型)上是否存在给定的属性。要检查的属性名必须是字符串(如:o.hasOwnProperty("name"))
- isPrototypeof(boject):用于判断当前对象是否为另一个对象的原型。
- propertyIsEnumerable(propertyName):用于判断给定的属性是否可以使用。与hasOwnProperty()一样,属性名必须是字符串。
- toLocaleString():返回对象的字符串表示,该字符串反应对象所在的本地化执行环境。
- toString():返回对象的字符串表示。
- valueOf():返回对象对应的字符串、数值或布尔值表示。通常与toString()的返回值相同。
因为在ECMAScript中Object是所有对象的基类,所以任何对象都有这些属性和方法。
注:参考书籍《JavaScript高级程序设计第四版》