var用来声明变量,后面声明的可以覆盖前面的如:
var a=0;
var a=1;
console.log(a);//a=1
let不能重复声明:
let a=0;
let a=1;
console.log(a);//Uncaught SyntaxError: Identifier 'a' has already been declared
var可以提前声明 ,而let不存在变量提升 :
console.log(a);
let a=1;//Uncaught ReferenceError: Cannot access 'a' before initialization
console.log(b);//undefined
var b=1;
let 是在代码块内有效,var 是在全局范围内有效:
{
let a=0;
var b=1;
}
console.log(b);//1
console.log(a);//Uncaught ReferenceError: a is not defined
const 一旦声明必须初始化,否则会报错:
const a;
console.log(a);//Uncaught SyntaxError: Missing initializer in const declaration
const和let一样 是在代码块内有效:
{
var a=1;
const b=1;
}
console.log(a);//1
console.log(b);//Uncaught ReferenceError: b is not defined