js函数与变量同名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js函数与变量同名相关的知识,希望对你有一定的参考价值。

console.log(a);
var a = 3;
function a(){}

输出的结果是:[Function: a]

注意一下几点就能知道原因了!

1)函数声明会置顶
2)变量声明也会置顶
3)函数声明比变量声明更置顶:)
4)变量和赋值语句一起书写,在js引擎解析时,会将其拆成声明和赋值2部分,声明置顶,赋值保留在原来位置
5)声明过的变量不会重复声明

按以上的规则代码等价为

function a(){}
var a;//实际无效
console.log(a);
a = 3;

 

以上是关于js函数与变量同名的主要内容,如果未能解决你的问题,请参考以下文章

如果构造函数参数与 C++ 中的成员变量同名怎么办?

为什么C ++允许类成员函数中的局部变量与成员变量同名?

JS全局变量是全局对象的属性,函数局部变量为啥就不是函数的属性呢?

JS 变量作用域

控制器controller与指令中的linkcontroller中同名变量作用域的关系

C局部变量与函数同名-它是如何工作的?