if 条件子句中的函数
Function in if condition clause
我得到了这个函数来预测输出。
说是引用错误,我还在想为什么?
if(function x(){console.log("ABC");})
{
x();
}
希望有人能对词法范围有所了解。
提前致谢。
你有一个 函数表达式 ,即使是 命名的 一个,你没有将该表达式分配给任何东西.您将其命名为 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
,这就是为什么当您尝试调用它时 none 存在的原因。
我得到了这个函数来预测输出。 说是引用错误,我还在想为什么?
if(function x(){console.log("ABC");})
{
x();
}
希望有人能对词法范围有所了解。 提前致谢。
你有一个 函数表达式 ,即使是 命名的 一个,你没有将该表达式分配给任何东西.您将其命名为 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
,这就是为什么当您尝试调用它时 none 存在的原因。