JavaScript 变量名和函数名相同

快乐打工仔 分类:实例代码

本章节介绍一下JavaScript中,变量名和函数名冲突时如何处理。

首先看一段代码实例:

console.log(typeof fn)
function fn() {
  //code
}
var fn

上面的代码的输出值是"function"而不是undefined。

说明变量声明并没有覆盖掉函数声明,下面进行一下说明。

函数声明优先级要高于变量的声明,但变量赋值以后,就会覆盖之前声明的函数。

function fn() {
  //code
}
var fn;
fn = 5;
console.log(typeof fn)

上面代码的输出值"number",因为上面的变量被赋值为5。

如果console.log()放在代码起始位置,输出值依然是"function",因为变量和函数声明都会被提升(这时候还没有执行赋值语句)。

回复

我来回复
  • 暂无回复内容