Gya*_*raw 1 javascript if-statement runtime-error function
我得到了这个函数来预测输出.这是说参考错误,我还在想为什么?
if(function x(){console.log("ABC");})
{
x();
}
Run Code Online (Sandbox Code Playgroud)
希望有人可以对词汇范围有所了解.提前致谢.
你所拥有的是一个函数表达式,即使是一个命名的函数表达式,并且你没有将该表达式赋值给任何东西.您命名它的x事实并不意味着函数x将在范围中提升,因为这对表达式不起作用.
function foo() {} // function declaration
(function bar() {}); // named function expression, the () makes it not-a-statement here
foo(); // ok
bar(); // doesn't exist
Run Code Online (Sandbox Code Playgroud)
所以实际上你永远不会声明一个函数x,这就是当你试图调用它时不存在的原因.