var
要么是全局的,要么是块级的。在同一个块级作用域内,碰到所有带{}的 var 都会重新赋值 let 不会。
let
块级
const
块级,且赋值后不可改变。
例子
let a = 1,
b = 2,
c,
d;
if ( a == 1 ) {
console.log( a ); // 1
a = 10;
console.log( a ); // 10
let b = 10;
console.log( b ); // 10
c = 10;
console.log( b ); // 10
let d = 10;
console.log( d ); // 10
let e = 2;
console.log( e ); // 2
}
console.log( a ); // 10
console.log( b ); // 2
console.log( c ); // 10
console.log( d ); // undefined
console.log( e ); // c is not defined
var a = 1,
b = 2,
c,
d;
if ( a == 1 ) {
a = 10;
console.log( a ); // 10
var b = 10;
console.log( b ); // 10
c = 10;
console.log( b ); // 10
var d = 10;
console.log( d ); // 10
var e = 2;
console.log( e ); // 2
}
console.log( a ); // 10
console.log( b ); // 10
console.log( c ); // 10
console.log( d ); // 10
console.log( e ); // 2