Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.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
Repl.it中的JavaScript_Javascript_Hoisting - Fatal编程技术网

Repl.it中的JavaScript

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记录到交互式解释器中 吊装是否仅适用于功能范围内或此处发生的情况 当我将上面的代码包装到一个函数中时,如下所示,结果与

我把这段代码放在repl中。它希望得到一个未定义的不是函数错误

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();