Repl.it中的JavaScript
我把这段代码放在repl中。它希望得到一个未定义的不是函数错误Repl.it中的JavaScript,javascript,hoisting,Javascript,Hoisting,我把这段代码放在repl中。它希望得到一个未定义的不是函数错误 foo(); var foo = function (){ console.log("Hey foo"); }; 由于吊装的原因,我想它会被解释为 var foo; foo(); foo = function (){ console.log("Hey foo"); }; 相反,它将heyfoo记录到交互式解释器中 吊装是否仅适用于功能范围内或此处发生的情况 当我将上面的代码包装到一个函数中时,如下所示,结果与
foo();
var foo = function (){
console.log("Hey foo");
};
由于吊装的原因,我想它会被解释为
var foo;
foo();
foo = function (){
console.log("Hey foo");
};
相反,它将heyfoo记录到交互式解释器中
吊装是否仅适用于功能范围内或此处发生的情况
当我将上面的代码包装到一个函数中时,如下所示,结果与预期的一样,事实上,undefined不是一个函数
只是想澄清一下这里发生了什么 它告诉我TypeError:undefined不是一个函数你确定你没有在你的实验之上偶然定义foo吗?我无法复制这个问题。在回复中,它告诉你了吗?隐马尔可夫模型。。。也许有某种缓存在进行?实际上,我只在repl中输入了第一个示例,它不是一个更大程序的一部分。可能您执行了一次,然后在执行它时,第二次定义了foo。
function fooTester = (){
foo();
var foo = function (){
console.log("Hey foo");
}
}
fooTester();