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",因为变量和函数声明都会被提升(这时候还没有执行赋值语句)。