函数值/名称的类型值日志为“未定义”.为什么
Typeof value of function value/name logs as "Undefined" . Why?
在下面的函数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
相关文章:
- 为什么“;未定义的“;在JavaScript中结束循环
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 为什么localStorage[“..”]未定义,而localStorage.getItem(“..”)为null
- 解析-为什么user.getSessionToken()返回未定义的结果
- 为什么这个函数调用会破坏程序并导致未定义的变量
- 为什么我会出现此错误"未捕获引用错误:未定义标题;
- 为什么JavaScript抛出'未捕获的ReferenceError:var未定义'定义var时
- 为什么这个JS代码打印未定义
- 为什么innerHTML返回“未定义”
- 为什么typeof的数组的数组的未定义值返回为“0”;未定义的“;我的条件不认为是真的
- 为什么我看到“;类型错误:游标未定义“;当使用indexedDB时
- 为什么分配给“NaN”或“未定义”会导致类型错误
- 类型错误:无法读取未定义的属性“toString” - 为什么
- 自定义函数返回正确的结果,并且未定义.为什么
- 函数值/名称的类型值日志为“未定义”.为什么
- Javascript:什么等于未定义?为什么不't myVar==未定义的工作
- Javascript数组并将它们赋值给变量,但第一个值为未定义.为什么
- ExtJS Ext.panel.body未定义.为什么
- Javascript:数组
- 无法访问现有节点包的属性,因为它是'未定义'为什么