一起来学ES6—let变量

    xiaoxiao2021-03-25  86

    我的个人微信公众号“精粹微阅读”(微信号"jcwyd2016")[不是订阅号,就是一个读书交流的小平台],没时间读书的可以来看一下,自己写的一些读书知识点总结,希望能对大家有所帮助~涉及经济政治法律理财设计各种方面的书籍

    let变量是ES6中新增的声明变量的方式,它主要包括以下要点

    1.仅在当前块级作用域内有效

    2.不存在变量提升

    3.不允许重复声明

    一、仅在当前块级作用域内有效

    var声明的变量在任何位置都可以访问到,而let声明变量的一大特点就是只有在当前作用域内才能访问。下面是一个例子:

    { var a = 1; let b = 2; { var c = 3; console.log(b); -------->1 } console.log(c); -------->2 } console.log(a); -------->3 console.log(b); -------->4上面的例子中,1能够正常调用变量b,而2会报错。这说明上层的作用域不能访问内层let方法定义的变量,而内层可以访问外层let定义的变量。3可以正常运行,因为var声明的变量在哪里都可以访问的到。相比之下4就会报错,因为在外层作用域内并不存在变量b,变量b仅在块级作用域中使用let方法声明过。

    二、不存在变量提升

    var声明的变量,不论声明在任何位置,都能被访问到,这就是var的变量提升。而let声明的变量,只能在声明后调用,否则会报错。

    console.log(a); -------->1 console.log(b); -------->2 var a = 10; let b = 20; { console.log(a); -------->3 let a = 30; }上面的代码中,1正常调用,因为变量a是var声明的,存在变量提升。而2会报错,因为b是let声明的,在声明之前对其进行调用,会出现变量b还未定义的错误。

    在一个块级作用域内,let声明的变量优先。因此在3中,即便外部已经声明了变量a,但是由于内部又用let声明了变量a,因此外部var声明的变量a在这个作用域内无效。在这个作用域中,又存在let变量的调用在声明之前,因此产生喝2相同的错误。

    三、不允许重复声明

    var声明的变量,如果重复声明同一个变量,后面声明的变量值会覆盖前面声明的变量值。但是。let声明的变量不允许被重复声明,否则会报错。

    var a = 10; let b = 20; let a = 30; ------>3 let b = 40; ------>4上面的代码中,3和4会报相同的错误。因为3和4使用let声明变量,并且在声明let变量之前,相同的变量名都已经被var或者let声明过了,因此会出现重复声明变量的错误。

    以上就是ES6中let声明变量的主要知识点。

    什么都懂一点,生活才多彩些。一起读书学知识吧~

    转载请注明原文地址: https://ju.6miu.com/read-23056.html

    最新回复(0)