javascript – 为什么变量声明总是会覆盖函数声明?

前端之家收集整理的这篇文章主要介绍了javascript – 为什么变量声明总是会覆盖函数声明?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
无论我是否在变量后定义函数
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
原文链接:https://www.f2er.com/js/158603.html

猜你在找的JavaScript相关文章