首先:var定义的变量是全局变量或者函数变量。
let定义的变量是块级的变量。
如果用 let 声明全局,想通过 this 来获取该全局变量会出现问题:
<script>
let num = 100; // let 声明的全局变量,无法通过this来获取
var num2 = 200;
// 拿不到 let num = 100; undefined
console.log("let num:"+this.num);
// 200
console.log("var num2:"+this.num2);
//拿不到 let num = 100; undefined
let fun = ()=>{
let num = 300;
console.log("箭头函数let num:"+this.num);
}
// 200
let fun2 = ()=>{
let num = 300;
console.log("箭头函数var num2:"+this.num2);
}
fun();
fun2();
</script>