无论我是否在变量后定义函数
var a = 1; function a() {}; typeof a // number
或者如果我在变量之前定义函数
function a() {}; var a = 1; typeof a // number
最终的结果类型总是数字
我在http://davidshariff.com/blog/what-is-the-execution-context-in-javascript/中找到了关于执行上下文的一些解释
Before executing the function code,create the execution context. ...... Scan the context for variable declarations: If the variable name already exists in the variable object,do nothing and continue scanning.
但这似乎不起作用.
那我怎么解释呢?
解决方法
它与JavaScript的
variable hoisting有关.请尝试这样做:
var a = 1; var a = function() {}; typeof a // function