Var can achieve variable promotion
//定义提升
console.log(e,window.e);
var e=104;
//报错f未定义
console.log(f,window.f);
let f=104;
let is loaded asynchronously, var will run after execution
//异步加载
for(let i=0;i<4;i++){
setTimeout(function(){
console.log("let "+i)},1000*i);
}
//先执行循环再timeout
for(var i=0;i<4;i++){
setTimeout(function(){
console.log("var "+i)},1000*i);
}
let defines local variables, var defines global variables
for(var i = 0;i<3;i++){
let i ="love";
console.log(i);
}
console.log(i);
var a=100;
console.log(a,window.a);
let b=101;
console.log(b,window.b);
c=102;
console.log(c,window.c);
if(1){
//aa全局变量
var aa=105;
//bb局部变量
let bb=106;
//cc局部常量
const cc=107;
}
//变量作用域
console.log(aa);
console.log(bb);
console.log(cc);
//let不能声明同名变量,var可以声明同名变量