var let const 区别
var定义的变量可以修改,如果不初始化会输出undefined,不会报错。
注意:省略var可以定义全局变量,但是我们不推荐这种能够用法,应为在局部作用域中定义全局变量是很难维护的,而且有意的省略var操作符,也会由于相应的变量不会马上有定义而导致不必要的混乱。
var a = 1;
// var a;//不会报错
console.log('函数外var定义a:' + a);//可以输出a=1
function change(){
a = 4;
console.log('函数内var定义a:' + a);//可以输出a=4
}
change();
console.log('函数调用后var定义a为函数内部修改值:' + a);//可以输出a=4
let是块级作用域,函数内部使用let定义后,对函数外部无影响。 比较适合于for循环,这样不会造成内存的泄露。
Let 解决的问题:
1为javaScript增加了块级作用域(立即执行函数不在必要了)。
2.用于循环计数,防止了变量泄露
2,内层变量可能会覆盖外层变量。
let c = 3;
console.log('函数外let定义c:' + c);//输出c=3
function change(){
let c = 6;
console.log('函数内let定义c:' + c);//输出c=6
}
change();
console.log('函数调用后let定义c不受函数内部定义影响:' + c);//输出c=3
const定义的变量不可以修改,而且必须初始化。
const b = 2;//正确
// const b;//错误,必须初始化
console.log('函数外const定义b:' + b);//有输出值
// b = 5;
// console.log('函数外修改const定义b:' + b);//无法输出
补充;
let是修复了var的作用域的一些bug,变的更加好用。let是更好的var。var的作用于是函数作用于,而let是块级别(大括号括起来的内容)
const声明的变量只可以在声明时赋值,不可随意修改,这是最大的特点。
在这明明可以靠脸吃饭的年代,却不要脸的去卖弄自己的才华。。。

浙公网安备 33010602011771号