00:00
行了,那我刚才说什么呢?就是我在讲变量对吧,变量这个东西我得讲什么呀,局部变量跟什么全局变量是不是,哎,我在讲这个,所以呢,我在这里讲那个小插曲,把函数给大家讲了讲,那接下来呢,咱们就来看一看,诶关于局部变量和什么全局变量的事啊007我们叫JS的什么呀,叫做局部变量和什么全局变量和啊这个概念上呢,咱们理解一下。呃,全局变量跟局部变量它的生命周期不同,各位全局变量我先下定义啊,先下定义我们后去演示例子,全局变量是什么?
01:02
在哪?在函数体之外。想着点啊,在函数体之外声明的变量属于什么?全局变量?全局变量的生命周期是浏览器。打开时声明,浏览器关闭时销毁。听懂了,浏览器打开时声明,浏览器关闭时销毁。尽量少用。太占内存。占浏览器的内存各位啊,尽量少用,因为全局变量会一直在浏览器的什么内存当中,耗费内存空间,能使用什么局部变量,尽量使用局部变量,各位局部变量是什么?在函数体当中声明的变量包括一个函数的行参。
02:28
都属于什么局部变量?听懂了吗?局部变量的生命周期是是什么?方法开始不是方法啊,函数开始执行时,局部变量的内存空间开辟。函数执行结束之后,局部变量的内存空间释放。
03:02
局部变量,生命周期较短。就是一个在函数体外生明,一个在函数体里边生明,包括刑参,刑参各位刑参啊,就是前面我们讲的这叫刑刑餐吧,这是不是行参啊,这个AB啊,局部变量。这个是局部变量,但这个就是啥了。全局的。全局的。这个我觉得应该好理解啊啊,那你看I变量,我定一个100吧,比比比如说100啊,然后接下来我我我在这干什么呢?我方个身啊,然后呢,我就叫做X Xi行吧,有这么一个函数行不行就访问艾玛。
04:02
我们来访问一下,哎,等于是吧,我们可以调用这个函数啊,怎么调啊XI。这个变量就是什么变量,全局变量对吧,那你在这里访问的是什么呀?啊,你咋了,同学你不在状态啊。这孩子不在状态。我感觉你今天。你怎么看?我这这个变量,我还没定义变量呢啊。这房子是全局,完全这个眼神就不太对,就感觉你这个今天这个。有点儿。眼神有点迷离,飘飘忽忽的不知道自己在干嘛。
05:05
可能也是比较累啊,I等于100。是吧?好,全局,那你说我现在定一个username这样的变量,叫做杰克,完事之后呢,接下来在这个位置呢,我方神啊,叫XS username,那么接下来在这个位置上,我们来访问一下,这里定一个username叫做李四,然后接下来我在这访问一下这个访问这个username,然后在这个位置调用函数X xn username,然后接下来执行结束之后呢,我在这再把我一个name啊,我这个拿过来啊,放到这。这是什么变量变量,这个是什么变量,局部变量啊好,那这访问的是谁?就近原则还需要我讲吗?对吧?访问什么局部变量对不对?那这个地方是不是调用函数,调完这个函数,这个函数只要一执行结束之后,这个变量的空间是不是就释放了,接下来再往下访问这个username的时候,这个user nameme访问的是它对吧?跟这个还有关系吗?没有关系啊,所以这里访问什么呀,访问全局变量啊,没蒙吧。
06:30
所以呢,先弹出谁李四,因为这个先执行啊,这个执行这个执行这个执行李四,李四有了李四吗?那再往下那个释放了之后呢,再往下就是直接保内就是他呗。杰克先,先李四后杰克啊,来,先李四后杰克,走一个先李四。后捷克。是吧,这样。
07:01
那你说我现在我在这里再列一个函数,比如叫age。A是年龄等于20岁,然后在这里我输出一个叫年龄等于A,好,大家看没问题吧,接下来呢,我在这里调用的函数access edge访问年龄,访问之后呢,接下来在这呢,我再去访问这个age行不行?行不行啊,那肯定百分百不行,因为我说过局部变量的空间只在这个方法执行的时候有效,方法执行结束之后,这个变量的空间就释放了,那你在这个位置是不是访问不了啊,如果一个变量访问不了的话,它会出错,出什么错,刚才演示过。不是我之前说过啊,如果一个变量声明了没值默认负安find,但是如果您这个变量连声明你都没声明,连声明你都没声明,就是错误啊,就是错误各位啊,来咱们执行一下。
08:15
来,走一个对,谢谢啊。提醒了我打开这个啊,确定杰克,确定年龄20,确定age is not,第50行,各位大家看代码是不是50行。定位还是比较精准的啊,比较精准的第五行出了问题。这个地方是报错啊,报错语法不对就根本连语法都不对,语法不对啊好了,那么接下来呢,咱们接着看,诶,理解局部变量跟全局变量了吗?理解了是吧?来我们来个诡异的东西啊,注意以下语法是很奇怪的啊。
09:09
Function。Email啊,随便写的啊,随便写的。算了吧,行吧,简单点。My function。我们一般是不是生命变量都是加一个VR啊,诶你看啊。比如说my name写上啊访问一下啊,访问函数啊,买function吧,好,是不是掉这个函数,调这函数之后呢,我们来访问一下谁。
10:07
My name。行吧,My name等于。行不行呢?很诡异的事情啊,看看。确定确定,确定确定。是不是执行了。是吧,好记住啊。如果一个变量在声明的时候没有使用VAR关键字。这个变量无论在哪里声明的都是全局变量。
11:05
加上他,你这个就。加上它就变成局部变量,在这里是不是访问全局的不存在,但你把这个去掉,它就在这能访问。我说一下各位啊,当一个变量声明的时候,没有使用VAR关键字,那么不管这个变量是在哪里声明的,都是全局变量。这个语法只有JS重要。别的语言没有这种诡异的语法。各位啊,这是比较特殊的地方。该记就记住你,你这些学起来好学的原因是因为你有什么底子呀,Java的底子对不对,但是跟Java不一样的地方,你是不是得得学一下。
12:06
对吧,那就是这样变量,如果声明的时候没有使用这个,我们用一下你看。刷一下,走一个走一个,走一个走一个。My name is not,但如果说把这个给它怎么着,去掉全局了,这个就变成全局了,懂吧,它变成全局变量了,走走走走走。这个不用管,不用管啊,不用管。不是一个错误。不耽误统一的执行。啊,这这这一点大家要注意,这是关于JS的局部变量和全局变量,我希望你能够把这个记住啊。
我来说两句