标签: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