if条款中的函数

时间:2016-03-07 16:41:52

标签: javascript function if-statement runtime-error

我被赋予此功能来预测输出。   这是说参考错误,我还在想为什么?

  if(function x(){console.log("ABC");})
    {
      x();
    }

希望有人可以对词汇范围有所了解。 提前谢谢。

1 个答案:

答案 0 :(得分:5)

你所拥有的是函数表达式,即使名为,也不会将该表达式分配给任何东西。您将其命名为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,这就是为什么当您尝试调用它时不存在的原因。