函数值/名称的类型值日志为“未定义”.为什么

Typeof value of function value/name logs as "Undefined" . Why?

本文关键字:未定义 为什么 日志 类型 函数      更新时间:2023-09-26

在下面的函数typeof(var2(中记录为"未定义",而我希望它是一个函数或变量。

var add_nos = function()    {
    var x = 2+3;
    console.log(x);
}
var var2 = add_nos();
console.log(typeof(var2));
console.log(typeof(add_nos));

有人可以解释一下,为什么会这样?

您将返回值 add_nos() 分配给var2 。由于它没有任何显式返回值,因此它返回undefined

var var2 = add_nos();

add_nos()隐式返回undefined,这就是console.log(typeof(var2));打印undefined

要记住的主要事情是 JavaScript 中的函数总是返回一个值。显式情况是当您在函数中包含 return 语句并决定返回什么时。但是,当您没有在函数中显式包含 return 语句时,JavaScript 将返回值 undefined

正如其他人提到的,您的函数返回 undefined 值,因为其中没有显式 return 语句。变量var2包含此undefined值。因此,您的第一个typeof语句询问undefined的类型是什么 - 即undefined.

你需要

做的是在你的函数中添加一行,看起来像这样return x;,然后将x的值返回给任何调用的函数。允许您在计算中使用函数。每个函数都返回一个值,问题是,如果您不定义要返回的内容,它将返回未定义的函数,运行得很好,它只是没有指定为返回值的值。

当你执行一个函数时,它会返回你决定返回的东西,但它没有明确返回任何值,那么它将返回undefined在这种情况下被分配给var2。其他一些语言也做类似的事情。例如,在这种情况下,python返回None

相关文章: