猿问

不同方式创建同名函数会怎样?

var kkk = function(){console.log(3333)}
function kkk(){console.log(4444)}
kkk()//3333
为什么输出是3333而不是4444。

沧海一幻觉
浏览 412回答 2
2回答

凤凰求蛊

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

慕桂英3389331

分别运行这两个试一下,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();
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答