1.const
定义的变量不可以修改,而且必须初始化。
1 const b = 2;//正确 2 // const b;//错误,必须初始化 3 console.log('函数外const定义b:' + b);//有输出值 4 // b = 5; 5 // console.log('函数外修改const定义b:' + b);//无法输出
2.var
定义的变量可以修改,可以重复声明覆盖,如果不初始化会输出 undefined,不会报错。
1 var a = 1; 2 // var a;//不会报错 3 console.log('函数外var定义a:' + a);//可以输出a=1 4 function change(){ 5 a = 4; 6 console.log('函数内var定义a:' + a);//可以输出a=4 7 } 8 change(); 9 console.log('函数调用后var定义a为函数内部修改值:' + a);//可以输出a=4
3.let
是块级作用域,不可以重复声明覆盖,函数内部使用 let 定义后,对函数外部无影响。
1 let c = 3; 2 console.log('函数外let定义c:' + c);//输出c=3 3 function change(){ 4 let c = 6; 5 console.log('函数内let定义c:' + c);//输出c=6 6 } 7 change(); 8 console.log('函数调用后let定义c不受函数内部定义影响:' + c);//输出c=3
注意:ES6 语法中里面不建议使用var
,因为var
定义的变量没有块级作用域,还会出现变量提升的情况,这样经常会导致你意想不到的错误,而let
就不会这样,const
是定义那些不可以被重新赋值的变量,let
是定义普通的变量。
总结:大部分情况下const
的出场率比let
高很多,所以一般建议默认使用const
,除非一定要改变变量的值,再使用let
。
Finally,谢谢大家的阅读!祝每天开心~
版权声明:本文为博主半原创文章,未经博主允许不得转载。
微信赞赏
支付宝赞赏
发表评论