猿问

求大佬指点哈!不同方式创建同名函数会怎样?

varkkk=function(){console.log(3333)}functionkkk(){console.log(4444)}kkk()//3333为什么输出是3333而不是4444。
翻翻过去那场雪
浏览 291回答 2
2回答

阿晨1998

函数是一等公民函数提升优于变量提升上面的代码实则如下:functionkkk(){console.log(4444)}varkkk;kkk=function(){console.log(3333)}kkk()拙见,若有不对之处望指正

POPMUISE

分别运行这两个试一下,var定义全局的kkk()被修改functionkkk(){console.log(4444)}kkk();//4444window.kkk();//4444varkkk=function(){console.log(3333)};kkk();//3333window.kkk();//3333varkkk=function(){console.log(3333)};kkk();//3333window.kkk();//3333functionkkk(){console.log(4444)}kkk();//3333window.kkk();//3333这样写,表明let的好处。报错,kkk已经被定义functionkkk(){console.log(4444)}kkk();//4444window.kkk();//4444letkkk=function(){console.log(3333)};//报错,kkk已经被定义kkk();window.kkk();
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答