如何检查基元的ID?

cho*_*on4 2 javascript

根据我的理解: - 原型类型测试是否相等

'lol' === 'lol'
true
Run Code Online (Sandbox Code Playgroud)

是的,因为内容是相同或真实的,因为内存中的对象ID是相同的?

- 用于身份的复合类型测试

[1,2,3] === [1,2,3]
false
Run Code Online (Sandbox Code Playgroud)

是因为引用变量是diff或diff,因为内存中的对象ID是diff?

我希望能够区分:
A)引用变量
B)标识符(命名空间)
C)内存中的实际对象
D)ID

是否有命令允许我单独测试这些东西?

Ank*_*wal 6

'lol'==='lol' 给你true,因为它是一个字符串文字.它属于pass by value类别,并且内存中的位置相同.

但是,如果你做了类似的事情

var s1=new String('lol');
var s2=new String('lol');
s1===s2 //returns false
Run Code Online (Sandbox Code Playgroud)

因为s1和s2是字符串对象并且按引用类别传递.值指向内存中的不同位置

[1,2,3]===[1,2,3]也会返回false,因为数组是Javascript中的默认对象.JS中没有原始形式的数组.它们属于参考类别,内存位置不同.