ecma中 x is y怎么解释?

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
  • 有标志数据只能等于它本身;无标志数据可以根据其他特征比较。
    Symbol是独一无二的值,不能相等
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容