var
1.仅仅声明 默认值是 undefined
2.可以重新赋值
3.作用域是方法内 ,而不是代码块内
1 function test(){ 2 var a ; 3 console.log(a); //undefined 4 5 a = "hello"; 6 console.log(a); 7 8 for(var i=0 ;i < 10 ; i++ ) { 9 var data = "test"; 10 } 11 console.log(i); //10 12 console.log(data); //test 13 14 }
![](https://upload-images.jianshu.io/upload_images/13581920-1338b6cd975ee3dc.png?imageMogr2/auto-orient/strip|imageView2/2/w/511/format/webp)
js-var.png
let
1.仅仅声明 默认值是 undefined
2.可以重新赋值
3.块作用域
1 function test(){ 2 let a ; 3 console.log(a); //undefined 4 5 a = "hello"; 6 console.log(a); 7 8 for(let i=0 ;i < 10 ; i++ ) { 9 let data = "test"; 10 } 11 console.log(i); //10 12 console.log(data); //test 13 14 }
![](https://upload-images.jianshu.io/upload_images/13581920-689bbf2bb53e601f.png?imageMogr2/auto-orient/strip|imageView2/2/w/386/format/webp)
js-let.png
const
1.声明时必须初始化
2.不可重新赋值
3.块作用域
4.虽然不可被重新赋值,但是可以改变。
1 function test(){ 2 const a = {"name":"czz","sex":"M"}; 3 console.log(a); 4 a.name = "XL"; 5 a.sex = "F"; 6 console.log(a); 7 }
1 function test(){ 2 const a ; 3 console.log(a); //undefined 4 5 a = "hello"; 6 console.log(a); 7 8 for(let i=0 ;i < 10 ; i++ ) { 9 const data = "test"; 10 } 11 console.log(i); //10 12 console.log(data); //test 13 14 }
![](https://upload-images.jianshu.io/upload_images/13581920-900e364c28c80270.png?imageMogr2/auto-orient/strip|imageView2/2/w/466/format/webp)
js-const.png
![](https://upload-images.jianshu.io/upload_images/13581920-eba08a42272267a4.png?imageMogr2/auto-orient/strip|imageView2/2/w/354/format/webp)
js-const-2.png
欢迎大家留言,以便于后面的人更快解决问题!另外亦欢迎大家可以关注我的微信公众号,方便利用零碎时间互相交流。共勉! !
![](https://img2020.cnblogs.com/blog/1480523/202012/1480523-20201227164954706-1835379526.png)