当JavaScript变量名和函数名相同时会发生什么?

6 浏览
0 Comments

当JavaScript变量名和函数名相同时会发生什么?

我有以下代码,在其中我声明了一个函数,然后在它之后声明了一个与函数同名的变量:

function a(x) {
    return x * 2;
}
var a;
alert(a);

我期望它会弹出undefined,但是如果我运行它,弹出框将会显示以下内容:

function a(x) {

    return x * 2

}

如果我给变量赋值(比如var a = 4),弹出框将会显示该值(4),但如果没有这个改变,a会被识别为一个函数。

为什么会发生这种情况?

0