var,let,const声明变量?
var 与 let 的区别?
1.var支持变量预检测,let不支持
console.log(a); // undefined 程序不会报错 var a = 1; console.log(b); //程序报错 b is not defined let b = 2;
2.let 不支持重复声明
var a = 1; var a = 10; console.log(a); // 10 let b = 2; let b = 200; console.log(b); //程序报错 Identifier 'b' has already been declared 变量已经被声明了
3.let 支持块级作用域
{ var a = 100; } console.log(a); // 100 { let b = 200; } console.log(b); //程序报错 b is not defined
const 声明常量,声明后不可被重新赋值。
const c = 3.14; const c = 3.15; ////程序报错 Identifier 'c' has already been declared 变量已经被声明了 console.log(c);
const 与 let 基本一致,但是也有区别。
1. const在声明的时候必须给初始化值,否则会报错
2. const声明的常量不可被再次修改
const 在声明常量的时候,有些情况是可以修改的
const obj = {}; obj.name = '我是1'; console.log(obj); obj.name = '我是2'; console.log(obj);
在这里不能修改obj这个对象,但是可以对对象里面的值进行修改。