var x = 1;
if (function f(){}) {
    x += typeof f;
}
x; //"1number"


Typeof f必须是附加到x的函数,其值应为“ 1function”。typeof f是一个数字吗?

最佳答案

我得到"1undefined",也许您还有另一个变量f,它是一个数字。

函数表达式的名称(或标识符)只能在函数内部访问。您的代码未创建公共符号f

specification


  可以从FunctionExpression的FunctionBody内部引用FunctionExpression中的标识符,以允许该函数以递归方式调用自身。但是,与FunctionDeclaration中的功能不同,FunctionExpression中的Identifier不能从中引用,也不会影响包围FunctionExpression的作用域。


FunctionExpression定义为:


  FunctionExpression:函数Identifieropt(FormalParameterListopt){FunctionBody}

08-17 08:21