var a 变量只声明 而未赋值 时候 变量 === undefined
var 存在变量提升
let const 不存在变量提升,并且在当前作用域内不能再次声明;在声明之前不能使用该变量(TDZ-暂时性死区)
const声明的是常量,只有声明的基本数据类型的时候 不可改变,引用数据类型可以改变值
比如 var a=1 在其上面console.log(a)时他就是一个把变量里的var a 给提升到了最顶层,值留在原地等待执行这时工作台打印输出的就是一个undefined,将console.log(a)放在var a=1下面时,他就正常在工作台打印输出1。
console.log(a)//在这里获取工作台数据时是获取不到的,因为let的变量是没有声明提升的,反而因为在这里获取会报错
let a = 1
console.log(a)//在这里获取工作台数据时是可以正常获取到的,js的代码运行是从上到下依次运行
let a = 2//这里的重新赋值会将上一个a=1的赋值给覆盖掉,从而在工作台上获取到新值
const a = 1 //const他是一个常量在简单数据类型中他是不可以进行更改的如果更改就会报错
a = 10 //可以在js中运行这个代码尝试一下看看简单数据类型中的常量更改后会报什么错
const obj = {name:1}//定义一个引用数据类型
obj.name = 10//更改其内部的值,不更改他常量定义的引用数据类型的框架
console.log(obj)//在工作台中正常输出他更改过值以后的数据