Javascript 为什么console.log(未定义)有时可以工作,但其他的不能工作? 考虑这个代码:
这将抛出一个错误。但是,如果您在函数中注释第一个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
未定义的
这种行为的解释是什么
谢谢。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);