问题描述
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
该函数正在根据它返回的数据生成一个新对象。
如果我误解了您的问题,我们深表歉意。