在本例中,我知道它将打印undefined
。Javascript:函数提升
var bar = typeof foo;
var foo = function() {
console.log('abcd');
}
foo();
console.log(bar); // -> undefined
所以我的理解是,当变量悬挂,bar
仍高于foo
,但foo
得到执行,所以不应该解释知道什么foo
是什么?
注:我试图了解解释器是如何工作的。我的问题不在于如何解决上述问题。
当'bar'被赋予'typeof foo'的值时'foo'没有被执行。在提升时,'foo'的值是未定义的。 –
通常,最好忘记吊装存在。只有知道你的函数是否妨碍了可读性,并且你想最后声明它们,但是你必须使用一个命名的函数表达式来声明它们才是真正有用的。 – 4castle