Identity
在本规范中,将比较规范值和ECMAScript语言值是否相等。
在比较相等性时,值可分为两类。
没有标志(Identity)的值等于其他没有标志(Identity)的值,如果他们所有的内在特征是相同的----特征如:整数的大小或序列的长度。
没有标志(Identity)的值可能在在没有事先参考的情况下通过充分描述它们的特征来显示。相反
具有标志(Identity)的值都是唯一的,因此也只等于它本身。具有标志(Identity)的值和没有标志(Identity)的值相比,只是多了一个不确定、不可改变的、统一-唯一的被称为标志(Identity)的特征。
ECMAScript语言没有规范标识且也没有语言标识是undefined, null, Booleans, Strings, Numbers和BigInts。
ECMAScript语言具有规范标识和语言标识的是Symbols(不是由Symbol生成的)、for和Objects。但是
Symbol值是由Symbol生成的;for 有规范标识,而没有语言标识。所以只剩下Objects
总结
- 有标志(Identity)的是基本数据类型的值:BigInt,Number,String, Boolean, null,undefined;无标志(Identity)的是复杂数据类型的值:Object
- 有标志数据只能等于它本身;无标志数据可以根据其他特征比较。
网友评论