var可以提升变量 也是跟let的区别之一
console.log(a)//undefind
var a = 1;
代码相当于
var a ;
console.log(a)
a=1;
var只是把变量提升在最上面,但是赋值3这一步就没有提升
还有var 声明函数
console.log(fn)//type error报错了
var fn = function(){
console.log(1)
}
同上 只是变量提升了 并没有提升值
fn()// 1
function fn(){
console.log(1)
}
函数声明这样 是直接把函数提升到了最前面 包括他的值
var 会提升所有变量,包括if里面的
console.log(t)//undfind 这样也会提升
if(false){
var t = 1;
}