var kkk = function(){console.log(3333)}function kkk(){console.log(4444)}kkk()//3333为什么输出是3333而不是4444。
2 回答
天涯尽头无女友
TA贡献1831条经验 获得超9个赞
函数是一等公民函数提升优于变量提升
上面的代码实则如下:
function kkk(){console.log(4444)}var kkk;
kkk = function(){console.log(3333)}
kkk()拙见,若有不对之处望指正
慕桂英4014372
TA贡献1871条经验 获得超13个赞
分别运行这两个试一下,var定义全局的kkk()被修改
function kkk(){console.log(4444)}
kkk();//4444
window.kkk();//4444
var kkk = function(){console.log(3333)};
kkk();//3333
window.kkk();//3333var 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();- 2 回答
- 0 关注
- 558 浏览
添加回答
举报
0/150
提交
取消
