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而不是未声明
原文地址:https://www.cnblogs.com/chuliang/p/11320316.html
时间: 2024-11-10 18:12:43