var kkk = function(){console.log(3333)}function kkk(){console.log(4444)}kkk()//3333为什么输出是3333而不是4444。
2 回答
凤凰求蛊
TA贡献1825条经验 获得超4个赞
函数是一等公民
函数提升
优于变量提升
上面的代码实则如下:
function kkk(){console.log(4444)}var kkk; kkk = function(){console.log(3333)} kkk()
拙见,若有不对之处望指正
慕桂英3389331
TA贡献2036条经验 获得超8个赞
分别运行这两个试一下,var定义全局的kkk()被修改
function kkk(){console.log(4444)} kkk();//4444 window.kkk();//4444 var kkk = function(){console.log(3333)}; kkk();//3333 window.kkk();//3333
var kkk = function(){console.log(3333)}; kkk();//3333 window.kkk();//3333 function kkk(){console.log(4444)} kkk();//3333 window.kkk();//3333
这样写,表明let的好处。报错,kkk已经被定义
function kkk(){console.log(4444)} kkk();//4444 window.kkk();//4444 let kkk = function(){console.log(3333)};//报错,kkk已经被定义 kkk(); window.kkk();
添加回答
举报
0/150
提交
取消