1. var常用作声明全局变量或者函数级变量:
声明变量但是未赋值,会以undefined返回;
var testVar ;
console.log(testVar); //undefined
在声明之前引用,会以undefined返回;
console.log(testVar); //undefined
var testVar = "testvar";
声明之后,可以随意更改赋值。
var testVar = "testVar";
console.log(testVar); //testVar
testVar = "testVar changed";
console.log(testVar); //testVar changed
2. const常用作声明全局常量:
必须初始化
const testConst; // 报错:Uncaught SyntaxError: Missing initializer in const declaration(未明语法:在Const声明中缺少初始化器)
不可再赋值
const testConst = 1;
console.log(testConst); //1
testConst = 2;
console.log(testConst); //Assignment to constant variable.(分配给常量变量值)
3. let常用作声明块级作用域变量:
未声明前不可引用,会报错(这点与var注意区别)
console.log(testLet); // testLet is not defined
let testLet;
对改块级作用域外部无影响(分别是两个变量)
let testLet = "testLet";
{
let testLet = "testLet changed";
console.log(testLet); //testLet changed
}
console.log(testLet); //testLet
不可以重复声明,会报错(var 声明方式,及覆盖原声明)
let testLet = 1;
let testLet = 2; //Identifier 'testLet' has already been declared(标识符“testLet”已经声明)