使用顺序 const ===> let ===> var
总结:1、const声明一次,无法重新赋值,声明的是常量,没有变量提升(再定义之前使用会报错)
2、let区域只能声明一次,可以重新赋值,没有变量提升(再定义之前使用会报错)
3、var同一个变量可以声明多次可以重新赋值,有变量提升效果(再定义之前使用其类型和值默认都是undefined,但是不会报错如果在下方找到定义后的可以重新赋值)
区别详细
const
const 可以声明 常量(不能改被改变的值)一般使用全大写
const PI = 3.1415926;
console.log(PI);
PI = 4.00; 再次对赋值过的常量 赋值会出错 不能更高
//值对象,数字number,字符串string,布尔,未定义
//引用类型,数组array,对象Object,空null
//引用类型可以修改
const HT = ['1','2','3']
HT.push('4')
console.log(HT) //输出结果是['1','2','3','4']
let
// let 声明局部作用域 没有变量提升效果 不能反复声明
// console.log(l1); 在定义之前使用 会出错
let l1 = "zzy";
console.log(l1);
// let l1 = 20; 不能再次使用let 声明变量l1
l1 = 20;
console.log(l1);
var
var 有变量提升效果 浏览器在解释之前会查找所有的var 先对变量定义
变量提升之后的效果
var v1;
console.log(v1); //变量还没有赋值 其类型和值默认都是undefined
v1 = "zzy"; //可以重新赋值
console.log(v1);
console.log(v1); //变量还没有赋值 其类型和值默认都是undefined
var v1 = "zzy"; //可以重新赋值
console.log(v1);
var 可以对变量重新声明
var v1 = 20;
console.log(v1);