如何理解JavaScript中var和let的区别

小编 193

JavaScript中var和let的区别,可以从以下两点进行理解:名列前茅,var是函数作用域,而let由于是块作用域。因此,在函数中声明了var,整个函数内都是有效的,而如果在块作用域内定义的变,在其外面是不可被访问的。第二,var允许重复声明,而let不允许重复声明,否则就会报错。

1.var是函数作用域,而let由于是块作用域

var是函数作用域。使用var声明的变量,其作用域为该语句所在的函数内,且存在变量提升现象。比如,在for循环内定义的一个var变量,实际上其在for循环以外也是可以访问的。

而let由于是块作用域。使用let声明的变量,其作用域为该语句所在的代码块内,不存在变量提升。比如,在for循环内,在其外面是不可被访问的,所以for循环推荐用let。

2.var允许重复声明,而let不允许重复声明

如果使用var/function关键词声明变量并且重复声明,是不会有影响的;但使用let/const就不行,浏览器会校验当前作用域中是否已经存在这个变量了,如果已经存在了,则再次基于let等重新声明就会报错。

延伸阅读

JavaScript变量如何使用

变量是程序在内存中申请的一块用来存放数据的空间。变量在使用时分为两步,分别是“声明变量”和“赋值”。这两步可以分开进行,也可以同时进行。

1.声明变量

JavaScript中变量通常使用var关键字声明,示例代码:

  • var age; //声明一个名称为age的变量

使用var关键字声明变量后,计算机会自动为变量分配内存空间。age是自定义的变量名,通过变量名就可以访问变量在内存中分配的空间。

2.变量赋值

变量声明出来后,是没有值的,所以接下来就要为它赋值,示例代码:

  • var age; //声明变量
  • age = 10; //为变量赋值

上述代码在变量声明后,将10这个值存人age变量中。其中,等号“=”并不是相等的意思,而是把等号右边的10赋值给左边的变量age。

在为变量赋值以后,可以用输出语句输出变量的值,示例代码:

  • alert(age); //使用alert()警告框输出age的值
  • console.log(age); //将age的值输出到控制台中

3.变量的初始化

声明一个变量并为其赋值,这个过程就是变量的初始化,示例代码如下:

  • var age = 18; //声明变量同时赋值为18

在将变量初始化后,使用console.log(age)可以输出变量的值,结果为18。

回复

我来回复
  • 暂无回复内容

注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部