[英]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时执行的代码:
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.