繁体   English   中英

firebug控制台没有吊装

[英]firebug console not doing hoisting

console.log(a());
function a(){
    console.log("hello");
}

从上面的代码,我将期望在控制台上记录"hello" (和一些undefined s)。 但是萤火虫给了

ReferenceError: a is not defined

萤火虫不起吊?

问题的原因是

在子块内声明时,函数不会提升。

通过MDN (这里涉及的很多不是标准的ECMAScript)。

比较以下代码段:

alert(c());
function c(){return 42;}

{
    alert(c());
    function c(){return 42;}
}

第一个将警告42,而第二个将抛出ReferenceError

以下是使用Firebug时执行的代码: Firebug的工具提示

data;
with(_FirebugCommandLine){ // >> block begins
    console.log(a());
    function a(){
        console.log("hello");
    }
} // << block ends

更新
观察到的行为似乎是Firefox javascript引擎中的一个小故障,因为在chrome和IE9中没有观察到它,看到这个小提琴

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM