js中三种定义变量的方式const, var, let的区别
1.const定义的变量不可以修改,而且必须初始化。
const test1 = 10;//正确
console.log('函数外const定义test1:' + test1);//有输出值
const test2;//错误,必须初始化
test2 = 5;//不允许拆分初始化
console.log('函数外修改const定义test2:' + test2);//无法输出
2.var定义的变量可以修改,如果不初始化会输出undefined,不会报错。
var test1 = 0;
console.log('函数外var定义test1:' + test1);//可以输出test1 = 0
var test2;//不会报错
function change(){
test1 = 10;
console.log('函数内var定义test1:' + test1);//可以输出test1 = 4
}
change();
console.log('函数调用后var定义test2为函数内部修改值:' + test1);//可以输出test1 = 4
3.let是块级作用域,函数内部使用let定义后,对函数外部无影响。
let test = 5;
console.log('函数外let定义test:' + test);//输出test = 3
function change(){
let test = 6;
console.log('函数内let定义test:' + test);//输出test = 6
}
change();
console.log('函数调用后let定义c不受函数内部定义影响:' + test);//输出test = 3
注意:let和const定义方式是ES6的新特性,IE10以下只支持ES5特性,如果使用会导致浏览器无法识别导致js文件无法正常被浏览器解析,导致乱码等问题。