我被赋予了这个函数来预测输出。它说引用错误,我仍然想知道为什么?
if(function x(){console.log("ABC");})
{
x();
}
希望有人能够对词法范围有所启发。
提前致谢。
你所拥有的是一个函数表达式,即使一个named一,并且您没有将该表达式分配给任何东西。事实上你正在命名它x
并不意味着函数x
将被提升到作用域中,因为这不适用于表达式.
function foo() {} // function declaration
(function bar() {}); // named function expression, the () makes it not-a-statement here
foo(); // ok
bar(); // doesn't exist
所以实际上你永远不会声明一个函数x
,这就是为什么当您尝试调用它时不存在。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)