请问,函数和变量同名,应该函数会置顶,为什么one()打印出的是1?
var one=function(){console.log(1)}
function one(){console.log(2)}
one()
请问,函数和变量同名,应该函数会置顶,为什么one()打印出的是1?
var one=function(){console.log(1)}
function one(){console.log(2)}
one()
首先,你需要知道
var one=function(){console.log(1)}
function one(){console.log(2)}
这两种方式定义函数的区别,var one=function(){console.log(1)}(函数表达式),function one(){console.log(2)}(函数声明),两种方式都会提升变量,var one=function(){console.log(1)}会把one这个变量提升,function one(){console.log(2)}会把one()函数提升,相当于
one
one()
var one=function(){console.log(1)}
function one(){console.log(2)}
//调用one()
又因为代码在默认情况下执行顺序由上到下,当调用one()函数时候,当前打印1了。
13 回答13.1k 阅读
7 回答2.3k 阅读
3 回答1.4k 阅读✓ 已解决
6 回答1.4k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
6 回答1.2k 阅读
http://blog.csdn.net/chy555ch...
变量声明会被顶置,函数声明也会被顶置且比变量更先声明。
所以变量声明会覆盖函数声明
这样运行结果也是 1
