Javascript 对象的类型

问题描述

我有一个简单的函数,如下所示:

function createData(name,email,role,date_joined) 
{
    return { name,date_joined };
}

返回值是否是一个简单的 javascript 对象,如果不是,则是什么类型?

解决方法

类型是对象。在 JavaScript 中,您实际上可以使用 typeof 运算符检查代码中事物的类型。请参阅下面的示例。

function createData(name,email,role,date_joined) 
{
    return { name,date_joined };
}

console.log(typeof createData(1,2,3,4));

正如已经指出的那样,许多东西,如数组、日期、空值都被 typeof 归类为对象。但是,这实际上是正确的,因为数组是具有整数键的对象,Date 是 Date 类的实例化,而 null 只是一个当前不指向对象的对象变量。

需要记住的是,JavaScript 中任何可以分配属性的东西实际上都是一个对象(除了稍微不同的函数)。您可以查看 here 以了解不同类型的定义。一个简短的总结是。这些是原语:

undefined : typeof instance === "undefined"
Boolean : typeof instance === "boolean"
Number : typeof instance === "number"
String : typeof instance === "string"
BigInt : typeof instance === "bigint"
Symbol : typeof instance === "symbol"

这些是对象和函数:

Function: typeof instance === "function"
Object: typeof instance === "object"
,

我会说是的。如果您使用 typeof 运算符测试该函数,它将返回一个对象。虽然 typeof 甚至为数组报告对象(如评论中所述),但您也可以使用 [isArray][2] 进行检查。

function createData(name,date_joined };
}

let typeOfFunction = createData("Yagi","goat@goat.com","Billy","16-May-21");

console.log(typeOfFunction)
console.log(typeof typeOfFunction) // object
console.log(Array.isArray(typeOfFunction)) //false

该函数正在根据它返回的数据生成一个新对象。

如果我误解了您的问题,我们深表歉意。