00:00
Hello,大家好,那这个小节我们来学习一下ES6里边儿的let关键字light。Let呢,它用来声明变量,作用呢跟腕一样啊,不过呢,声明变量呢,有一些特性。首先我们先来演示一下这个let生命变量的一个格式。它的声明格式呢,与ver是一样的,Let关键字空格后边呢,加标识符你可以呢,声明一个,你也可以呢,声明两个BCD。如果你说你还有还有更多,你还可以接着写啊,逗号分割就可以了,那除了这样子单纯声明以外呢,咱们还可以呢,负初始值,比如说E等于一个100啊,还可以呢,声明多个,比如说521啊,然后G呢等于一个I loveyou,还有一个H等于一个数组啊,这样子也可以就是批量的声明并赋初始值。
01:02
它是不会报错的啊,语法是OK的,好,那么这是声明的一个格式,下边呢,我们来说一下呢,就是let声明变量的一个特性。第一个变量呢,不能重复声明。举个例子,比如light star等于一个罗志祥。好,再来一个let star等于一个小猪。保存。OK,大家看一下。看这啊,然后ENT star has already been declared啊,他说这个star变量已经声明了,就不能再声明了,好,这是第一个特性啊,不能重复声明,当然我如果说我们使用Y去声明的话,大家看一下它是没有问题的,可以重复声明,这样的话呢,就防止我们变量呢,哎,命名呢重复啊,担心这个变量被污染,好这是第一个特性,下边的话我们来演示一下第二个特性,那就是块及作用域,在ES5里边呢,我们有两种啊,应该说三种作用域,第一个是全局,第二个呢是函数,还有一个是evil作用语。
02:19
这个E作用域呢,是在ES5的严格模式里边才会出现的,哎,然后呢,在咱们的ES6里边呢,它还引入了块级作用域,而Lett声明的变量就是块级作用域的。那么这个会计作用是什么意思呢?就是这个变量呢,只在代码块里边有效,除代码块以外呢,就无效了,读取不到了。举个例子,比如说let girl等于一个周扬青保存,我们呢,在外层使用conso log来输出一下这个变量。保存大家可以看一下报错啊,Reference error girl is notified说这个变量没有定义好,那如果说我们换成where呢?保存大家可以看一下这里的话,它就能够正确的读取到这个结果。
03:11
啊,因为呢,咱们这个Y呢,它在这个代码这块呢,它没有会计作用域啊,它所以它会往这个全局的window属性里边去添加啊这个属性,然后所以说我们在外边可以读取到的啊,但是呢,我们使用let的话,因为它是一个会计做预,只能在代码块里边有效啊,所以说的话外边就读取不到了。好,这是一个会计作用,那么当然再补充一点,就是这个会计作用呢,并不是说只是单纯的写花括号。啊,那情况的话还包括比如说if后边这个划括号,还有呢,Else while循环,For循环这些循环语句里边,啊,他们也是啊,如果说用let声明的话,也是块计作用语,只在代码块里边有效。
04:00
好,那么这是第二点,那么下边第三点就是不存在变量提升。什么是变量提升呢?就是代码在执行之前呢,会先去收集变量啊,就用咱们Y啊,还有函数,就Y声明的变量以及函数啊,会提前声明,对于外生命的变量的话,还会附一个初始值,就是unDeFi,举个例子,比如说啊,我们这个some等于一个恋爱达人。哎,恋爱达人保存,那我们可以在这个变量声明之前来输出这个变量。它并不会报错,而是会输出一个unDeFined,这就是一个变量提升的一个现象,就代码执行之前呢,先会收集,相当于是这样的一个效果。啊,然后呢,你在这输出,所以说会有一个unde的一个结果,好,那么如果说使用let的话,它就不存在这个现象了啊,它就会报错,不允许你在变量的声明之前去使用这个变量,这也是符合常规一个思维的啊好,这是当前呢,我们说的第三个特点,不存在变量提升,还有一点第四点就是不影响。
05:15
这个装修店。这个的话算是一个补充,因为很多同学呢,在提到会计作用域以后呢,会认为说哦,它只在这个块里边啊有用,那么如果说里边在生明函数的话,它也是不可以使用的,其实是不对的啊,我们来演示一下,举个例子,比如说我们这生明一个变量let,然后F来,咱们来写个写一个school啊,等于一个上硅谷,哎,然后呢,写一个函数function,来一个FN。好里边呢,输出输出这个变量四股。那么下边的话,我们使用FN来来调用这个函数保存,那么这个时候呢,我们来看一下效果,哎,刷新走看这上硅谷没有问题,我们是用let声明的,但是呢,它不影响作用预链效果,我们叫FN函数,然后FN内部呢,它去输出这个school变量,但是因为呢,这个函数作用域下边没有,所以说它会向啊向上一级的这个作用域里边去找这个过变量,它就找到了咱们这个变量。
06:23
所以说它虽说是库尔基作用欲,但是它不影响作用欲链的一个效果。好了,这是咱们这个小节,来给大家介绍一下let,以及它的一个声明特性,保存一下。
我来说两句