"类型标签"的含义是什么?在nodejs中

时间:2018-05-12 11:38:40

标签: node.js

nodejs的文档中的

assert.deepStrictEqual(actual, expected[, message])

  

对象的类型标签应该相同。

"类型标签"

的含义是什么
const date = new Date();
const object = {};
const fakeDate = {};

Object.setPrototypeOf(fakeDate, Date.prototype);

// Different type tags:
assert.deepStrictEqual(date, fakeDate);

typeof datetypeof fakeDate,结果均为object,但不同的类型标记

1 个答案:

答案 0 :(得分:2)

Javascript中的类型标记,是指typeof

返回的单词

例如对于原始值:

typeof({}) // returns 'object', this is the type tag

对于非原始的:

Object.getPrototypeOf(new Date) // returns 'Date {}' this is the type tag

如果typeof与Date一起使用,它将返回object,这是正确的,因为这将是原始值的类型标记,这就是使用Object.getPrototypeOf更准确的原因。

在第一次JS实现中,类型标记存储在前1-3位,其余29-31包含实际数据。

NodeJS文档所说的,比较两个对象时Object.getPrototypeOf函数的结果必须相同才能被视为相等。