函数值/名称的类型值记录为“未定义”。为什么?

时间:2015-11-28 16:09:53

标签: javascript function object

在下面的函数typeof(var2)中记录为“undefined”,而我希望它是一个函数或变量。

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

}
var var2 = add_nos();
console.log(typeof(var2));
console.log(typeof(add_nos));

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

5 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

var var2 = add_nos();

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

的原因

答案 2 :(得分:0)

你需要做的是在你的函数中添加一行看起来像这个return x;的行,然后将x的值返回给任何调用函数的行。允许您在计算中使用函数。事物是每个函数都返回一个值,如果你没有定义返回它返回它返回undefined你是函数Ran就好了它只是没有指定一个值作为返回值。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

要记住的主要事情是JavaScript中的函数总是返回一个值。明确的情况是在函数中包含return语句并决定返回的内容。但是,如果您未在函数中明确包含return语句,则JavaScript将返回值undefined

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