码迷,mamicode.com
首页 > 其他好文 > 详细

var foo = function(){} 和 function foo(){}

时间:2019-08-08 13:38:38      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:cti   声明   报错   UNC   提升   预处理   fun   func   define   

 

var foo = function(){

alert(1)

}

function foo(){

alert(2)

}

foo()会输出1

这是因为function foo()这种写法会在程序执行前的预处理中赋值,

而var foo = function()会再一次声明foo、再一次赋值

把var 换成 let就会报错:foo已经被赋值了

这个var的变量提升是两码事,var的变量提升说的是

alert(foo)

var foo = function(){

alert(1)

}

会打印出undefined而不是未声明

var foo = function(){} 和 function foo(){}

标签:cti   声明   报错   UNC   提升   预处理   fun   func   define   

原文地址:https://www.cnblogs.com/chuliang/p/11320316.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!