JavaScript 变量声明篇

251 阅读2分钟

在ES6之前的呢,我们定义javascript的变量唯一的关键字就是var,这个var变量可有好多学问呢?例如我们定义一个变量如下:

var  c = 10;

这里的变量c呢,我们可以理解成放衣服的柜子,也就是通常我们所说的内存空间,

而他的值呢就是柜子存放的衣服,就是10,

当程序执行到  var c = 10  时,其实是先去创建一个变量空间,此时的值还是undefined,

当执行过后才会把值 10 赋给 c,其实呢这就是平常所说的变量提升这样高大上的名称,看起来太专业了,

说了一大堆废话,还是来一张图说明问题




在这附上动态的效果图看的更明了


看到没有在右边的c的值一开始就是undefined,当执行完了之后c的值才为10

接下来我们在来看看,在javascript中还有一种定义变量的方式就是如下

直接变量赋值的形式     x = 10;

实际上呢这个变量是挂载在window这个全局对象上的

不信我们来console.log(window.x === x)

我们再打印出来看看


在window对象下找到了x



到了es6呢,我们变量声明可以使用let  来定义变量

也可以用const来定义常量

但是这个let变量声明关键字呢,他取消了变量声明的提升

我们来看看他的情况

他就是直接给他赋值了,没有undefined这个说法,

那么如果在es6的严格模式下的环境里面我们这样定义一个变量如下

x = 10

直接给报错了 x is not defined


再者相同的变量名称无法定义多次


而var关键字则相对比较自由一点


const是用来声明不可变的内容的,比如PI的值,等等

也不能重复声明,更不能修改变量的值


不能重复声明


今天就写到这里吧,明天继续写吧,

如果感兴趣的朋友可以关注我们的微信公众号