var 是声明变量的一种方式
很多情况下js的面试题中都有var变量提升的问题,而var的变量提升会导致变量名混乱等问题,且变量提升也不好理解。
例如:
console.log(a);//undefined
a=3;
console.log(a);//3
var a;
也就是说在开始的时候已经进行的变量的声明,var把a的声明定义到了代码的开始部分
而使用let就不会进行这种情况,并且这会使代码在代码块当前作用域生效,
他不会进行变量的提升,
var c=c;//不会进行报错
let b=b;//报错
当使用var 进行声明时由于变量的提升所以并不会报错,
而在使用let的时候当你在省名之前的代码度取它的值就会进行报错。
并且 let是声明变量的,而且他只在当前{}生效也就是说当你进行for循环时初识条件中定义的变量i并不会影响{}之外的for循环定义的i。
const是定义 常量并且定义之后就不会进行更改了,但是要注意他和let一样有暂时性死区问题(也就是没有定义时就取值)。const最好不要定义数组和对象因为他存储的也是一个地址当存储了数组和对象的地址之后const就会变得没有了意义。