boolean
是否在内存中存储为32字节整数? null
值如何?
在书Speaking Javascript中,
它指的是类型标记,用于指示存储在内存中的值的类型。例如Object
类型的类型标签是000.什么是类型标签?
如何找到值类型的类型标记,例如boolean
或string
?
答案 0 :(得分:3)
来自Andy Wingo关于这个主题的blog post:
最初,所有JavaScript实现都使用标记指针来表示JS值。这是一个老技巧,来自观察到分配的内存占用至少4或8个字节,并以最低有效位或3为零的方式对齐。
因此类型标签允许统一存储所有值。所有值占用一个机器字(32/64位),并且根据标记(最低有效位或位),它们被解释为指向对象的指针或根据标记的某些整数/布尔/等。
布尔存储为js内存中的32字节整数?
布尔值也占用一个单词。对于更具体的答案,我需要通过v8源代码。但如果我没记错的话,true
和false
将表示为根指针。
如何获取值类型的类型标记(boolean,undefined,string,number);
无法通过JavaScript完成此操作。这是内部实施细节。