声明变量的三种方式var,let,const

var

使用var声明变量,会有变量提升。var声明的变量会把变量声明提前到当前作用域的最顶端,但不会赋值。函数声明,也有提前而且还会提前定义函数,所以函数声明可以提前执行,而函数表达式不能被提前执行。

实际使用中,尽量使用函数函数表达式来书写函数,避免函数声明被提前执行,出现不不必要的错误。

全局变量对象VO中使用var声明的变量,也会在全局对象GO中增加对应的属性,也就是var a=0

window.a=0

函数中不用var声明,也不是形参的变量,是全局变量。

var声明的变量可以重新声明,但let和const声明的变量不可以重新声明。在代码编译,词法解析阶段就不能通过,还没进去代码执行就会报错了。

let

只在当前块级作用域的私有变量。解决了循环中无法保存变量的问题。

let和const都是创建变量的语法,

let创建的变量可以改变指针的指向。

const创建的变量不可以改变指针的指向。

你可能感兴趣的:(声明变量的三种方式var,let,const)