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}