var foo = function(){} 和 function foo(){}
Posted chuliang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了var foo = function(){} 和 function foo(){}相关的知识,希望对你有一定的参考价值。
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(){}的主要内容,如果未能解决你的问题,请参考以下文章
有具体名称的匿名函数var bar = function foo(){}