Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么console.log(未定义)有时可以工作,但其他的不能工作? 考虑这个代码:_Javascript_Undefined - Fatal编程技术网

Javascript 为什么console.log(未定义)有时可以工作,但其他的不能工作? 考虑这个代码:

Javascript 为什么console.log(未定义)有时可以工作,但其他的不能工作? 考虑这个代码:,javascript,undefined,Javascript,Undefined,这将抛出一个错误。但是,如果您在函数中注释第一个console.log,它将工作并打印未定义的 这种行为的解释是什么 谢谢。var t声明了一个变量。它(t)存在,但具有未定义的值。当您读取它时,您会得到undefined值(该值x()返回,因为该函数中没有return语句) y未在任何位置声明。当您尝试读取它时,会出现引用错误。(这将中止进一步的处理,因此脚本的结果不会运行,并且永远不会到达console.log(t)语句)。函数x中的console.log尝试打印不存在的内容,但consol

这将抛出一个错误。但是,如果您在函数中注释第一个console.log,它将工作并打印
未定义的

这种行为的解释是什么


谢谢。

var t声明了一个变量。它(
t
)存在,但具有
未定义的值。当您读取它时,您会得到
undefined
值(该值
x()
返回,因为该函数中没有
return
语句)


y
未在任何位置声明。当您尝试读取它时,会出现引用错误。(这将中止进一步的处理,因此脚本的结果不会运行,并且永远不会到达
console.log(t)
语句)。

函数x中的console.log尝试打印不存在的内容,但console.log(t)打印未定义(非return)的函数return您需要阅读一些有关javascript变量、函数和作用域的内容:)发生的错误应该确切地告诉您为什么没有定义
uncaughtreferenceerror:y
,您可以很容易地看到这一点,甚至可以搜索这意味着什么。这个问题没有显示任何研究成果。@Tareq我目前正在在线阅读speakingjs。这是一本好书,但并不总是像我希望的那样清晰。如果你在javascript中有更好的资源,请提供给我。在IE中没有这样说,只是说y是未定义的,这就是为什么我感到困惑的原因。但是在Chrome中,它更清晰,并且报告了一个引用错误,就像你所说的。它说在我的IE副本中:我只得到SCRIPT5009行。@admdev-你使用的是不再从Microsoft获得安全更新的旧版本的IE吗?我使用的是11.125.16299.0
function x(){
    console.log(y);
}
x();
var t = x();
console.log(t);