00:00
发了你们那个几道题啊,我们来一块说一下,几道题呢,不难啊啊没有评是吧?来这几道题呢,我们来看一下啊,首先呢,第一个第一个其实就非常简单了是吧?一个函数,函数里边alert,一个变量A,然后在外边调用了一下函数,那找的时候是不是现在自己得找啊,自己有吗?没有外边找,那这个是谁呀?诶123啊这个是123,然后再往下看,这是呢,一个也是跟它一样,不同的是多了一个Y的一个A等于456,但是它是在Y之前是不是使用的呀?那这个应该出来什么?诶安你范的,因为变量提前声明吧,诶他会在所有代码执行之前声明,所以干嘛呢?这个A已经有了,只不过是没有赋值,所以这打印出来应该是一个安你范的啊,安范的是我们这个局部的这个A,然后呢,这也有多一个A,这是在全局里耳多,这应该谁,那是不是123呀,这这个。
01:00
456是修改的,这个局部的对全局的没有没有影响啊,没影响,所以它的值呢,依然是这个123啊,依然是123,然后再往下看,这有一个题,诶也是一样的,只不过这个Y没了,对吧?哎,腕没了,我们来看A等于123,然后alert a,那还是问你这问题找A,局部里有A吗?有吗?没有A吧,这可不是局部的A啊,他也不会被提前声明,所以局部里是没有A的,是不是找全局啊,全局A是多少啊,123,所以这A勒出应该是123,然后A等于456,给A负值,那还是问你局部里有A吗?没有吧,没有A找全局,全局6AA等于456,结果干嘛了,全局的A应该变成了456,所以这个老师应该是谁啊?456吧,这没有争议吧,哎,来再来看下边一个,诶,还是这个Y一个A等于123ALO a,然后A等于456,跟上边是一样的,唯独不。
02:00
同的是多了一个行参,好,那问你这alert AA应该是多少安你范的吧,你行参,你这没有传十参,是不是就是安你范的呀?哎,然后A等于456,我问你局部有没有A,或者函数里有没有A,有没有A,有A吧,诶有A,所以A等于456是给函数里边的A赋值为456吧,诶对全局的有没有影响没有,所以这是安地范,这儿呢,还是123,因为这个不会对它构成影响,为什么?因为它定义了什么呀,形参了啊,定义形态了,这个懂吗?哎,待会你自己测了啊,我就不再测了啊然后呢,这来了一个Y,一个A等于123,然后也是有形3A,然后呢,Alert a调用的时候呢,传13了,13是什么呀?123,那这alert应该多少123吧?哎,它也是12123,但是这个123是我们什么呀?诶传进来的123吧,哎,传进来123,然后这来什么呢?A等于456,修改A乘456了那。
03:00
所你对这A有没有印象,没有吧,这是全局的A,这修改的还是什么呀,局部的啊,我们这函数里边的A啊,所以注意它还是什么呀,123啊,也也就是这两个其实都是123啊,都是123是这么一个关系啊,这题的其实都不难啊,你给他理一下是都能看出来的啊,都能看出来的,然后呢,咱们再说一个东西啊,再说一个东西,这个东西呢,我们先了解一下以后,其实还是还是挺实用的啊,我们来说一个什么呢?一零我们叫做一个de bug,什么叫你bug呢?那我们刚才说了么?堆一堆什么呀,全局作用域又是这种含数作用域,比如说来一个Y一个这个A等于一个十,然后我这Y一个这个B等于一个这个二等于hello,然后呢,我这来一个C等于一个这个处我是不是声明了三个值啊,诶再来一什么呢?来一个函数方式,我们来一个f fun f fun,我这来一什么呢?Alert来一个这个哈,随便写一个,然后呢,我在最下边写一个,写一个什么呢?写一个Y一个吧,Y一个这个D等于一个,这个等于个。
04:06
诶,35吧,随便写一个,我是不是有这么一堆代码啊,哎,那这块呢,我在最上边来一个alert,一个这个alert,一个dlert,一个这个D,我是不是输出一个D啊,我们说了,哎,全局的什么呀,在我们全局作用域中声明的变量都会作为我们这个什么呀,Window对象的这个属性,在所有的这个函数是不是都会作为我们window对象的方法呀,而且我们说了使用哇,关键字声明的这个变量是不是会被提前声明啊,所以我在最上面A了D能不能打出来,是不是应该是安迪饭的呀,他会被提前声明,声明提前我这来什么呢?C那什么呀。谁报错了呀,哎,谁报错了啊,来我这来我罗上一个D,再我们外部访问来已运行。出来效果是不是按find的呀,但是如果你这乐的是这个C就报错了啊,来保存,咱们再看F121刷新是不是c is not find呀,哎,Not defend啊,所以这块注意叫做一个声明提前,但是这里边我们来看一个问题了,这东西干嘛呀,咱们现在说他声明提前了,一直都是什么呀。
05:13
嘴上说的对吧,空口无凭,我们只是提出这么一个假设,然后通过这么一个实验,是不是看见了,哎,那我希望什么呢?我希望我能看它干嘛呀,看得更清楚一点,那怎么能看的更清楚一点呢?那我希望什么呀?当我执行aler的时候,我希望能看一下我们整个程序运行的一个什么呀,内存的一个结构,我希望干嘛呢?当我这个代码执行的时候,我让干嘛呀,我让我这个程序啊,在这停一下,在这干嘛呢?停住,停住干嘛呢?停住,让我好好的去看看我们整个一个代码运行的一个什么呀情况,那这块我怎么能让它停住呢?诶来,那这块我们来看看啊,打开我们这个火狐,它这有一个什么呀,我有一个叫做脚本,我先刷新一下啊,重置一下我们这个东西,然后往这一看,你这是不是能看到我们这个所有的这个代码啊,看见这了吗?诶什么alert y一个A等于十啊,Y一个B等于hello啊,C等于处等等,所有代码都在都在这儿呢,现在干嘛呢?诶你看着啊,我在第八行这儿,我说我点一下是不是处了一小红点啊,这红点叫什么呢?叫断点啊叫断点,我现在希望什么呢?希望我这个程序当我运行到这儿的时候干嘛呢?你先停住,说白了,哎,运不运行啊,不运行,诶不运行,等待我的指令,我让你运行,你是在运行啊,诶那这个点就是一个断点,现在这个程序呢,就在这儿停住了,但注意啊,你得刷新一下,这是什么呀,因为我们上一次已经运行完了,你得重新运行一次,刷新一下页面,我来一刷新走你诶你看。
06:45
现在到这是不是一个混饨头指着这了,而且刚才那个呃乐乐出没出来啊,没出来吧,为什么?因为他还没有执行呢,现在这已经干嘛了,停住了啊,已经停住了,那现在一停住了,来看这儿,这儿是不是有一个监控啊,在这里边就能看到我们整个一个内存的一个结构,我们来看这这是不是有一个全球作用域啊,写了一个这个window啊window你点开它能看到什么呀?诶是不是能看到我们全球作位里边这些变量啊,哎,你看AB有没有,是不是都已经有了呀,只不过值是按米范的吧,但是C有没有啊,哎,C是不是就没有啊,哎,C有没有,为什么?因为C我没有加这个,加这个Y吧,哎,加这个Y啊,而且这里边它都是在什么呀,都是在我们这个全局作用域这个window里边再看诶。
07:38
函数是不是也有了f fun这个函数,而且它还不是安范的,它是不是已经有有值了呀,哎,就是说我这个函数已经干嘛了,已经创建好了啊已经创建好了,好,那现在我们来接着往下看,那我来看我这个A它是什么时候赋值的啊,什么时候赋值的,那怎么看呢?我们来看这是不是一个箭头啊,叫做一个单步跳过,诶也就什么呢,往下执行一行啊我一点走来看alert是不是出来了呀,证明什么呀,Aler已经执行了,我一确定你来看现在是不是跑这儿停着来了,哎跑这儿停着来了,那注意他在这儿停着,这行直没执行呢,没有呢,要执行还没执行,所以你来看这全作用里边A是不是还是按你find的,因为这还没有执行的,诶然后呢,我往下呢,再执行一个走,是不是执行到下一行了,那这一行是不是就执行完了呀?诶你这你一往这你往A这一放,是不是出来十了,诶来全球等于。
08:34
A是多少十,但是B是不是还没赋值呢?诶B还没赋值,因为这行还没有执行呢,来咱们可以干嘛呢?我们来看这儿啊,这里边我选中这个变量应该有一个添加监控,你添加监控呢,直接就在这儿显示了,这样你看的比较。比较清楚一些,你看C是不是就是c is not DeFine,哎,没定义呢啊来,我往下走一个走。B是不是有值了,哎,这时候C还没有呢,来,我再往下走一个走。
09:06
好了,走不动了是吧,死了那这块啊,可能是因为我干嘛呀,我监控了一个没有没有定义的对象,这块出问题了啊,没有定义的对象我们这块出问题了,来咱们给他呢关上。来再看啊F12还是打开,我们再把这个过程给它重复一下脚本,我们找到这断点是不是还在呢呀,我直接一刷新跟这儿是不是又停下了,我直接往下运行啊,还是咱们来看一下,我先监控A和B啊abd那几个呢,我先监控监控A,还有这个B,然后还有这个B,应该就是刚才监控这个C的时候出问题了这种。Abd。D它怎么不附上值了是吧?D我这还没有带没有执行的吧,没有执行的来刷新一下,那证明它这东西啊,这个是不是没了呀,可能是缓存之类的一个东西啊,反正这块用管了,那是不对的啊,那是不对的,好,那现在abd是不是都没有值啊,哎,都没有值,C连干嘛呢?C连影都没有呢,对吧?影都没有呢,来我们往下直行,一直行弹步跳过,诶确定,诶A还没有直呢,因为还没有直行的啊往下再直行,A是不是十了,再直行B是不是变成hello了,然后你再执行,是不是C等于处了,诶来这再一执行,再看我们这个全局,是不是这回C才有呢?哎,刚才C压根就没有,然后再往下执行,诶你注意了,刚才我执行完C以后,诶怎么没有在16行停,这直接跳到二行里了,看见了吗?这是为什么呀?诶因为这个早就什么了,执行完了,哎代码一加载这东西就干完了,执行完了,所以刚才他根本就不用执行了,因为我们这方方个式是不是早就我就有了呀,所以它。
10:56
早就执行完了啊,他就不用再执行了,然后再往下来,往下执行一个,往下执行一个是不是就没了呀,一执行是不是就D就35了,哎,这一块执行完了啊,所以这块我们可以通过这个断点的形式来干嘛呢?来查看我们这个代码的执行流程,从而呢,在这儿来看一下我们整个程序的一个内存结构啊,都可以看见,再细的这种东西都可以看见啊,当然了,这东西呢,不是说仅仅什么呀,混狐能用我们的Chrome行不行也行啊,Chome也行,来还是F12CHROME在哪呢?在一个叫做一个。
11:32
SSS这点开这个网页看这了吧,诶S这我们来点呢,也是在耳朵上,它这它这断点不是圆的,是一个长条的,有一箭头指着它,然后同样你也得重新刷一下页面,一刷新到这是不是也停着了,诶在这儿呢,也可以去看A还是什么呀,安find的呢,方式已经什么了,已经有了,诶已经有了,包括我们这些什么scope,我这个自用域,全球自用域window这里边是不是都可以看见,当然在它这边显示东域会比较比较多了,哎,它会显示东西比较多了,哎那比如说你想看这个B,也是点这个B有一个这个a to watch是不是B也是安de find呀,你想看这个谁呀,B也是点这个B来一个a to watch是不是D也是安你find的呀,然后同样这个东西也可以干嘛呢,也是F10啊,可线都是F10点这个。
12:19
说他走了,一确定来看,A还没赋值呢,再1.a是不是变成十了来,再1.b是不是变成hello了,哎,再一点是不是C出来了,C在得在我们这个全局里找一下,这个C呢,你这找的有点费劲了,他应该在。咱们就不找了啊,我就监控一下就完了,找着什么老费劲了是吧?哎,这图watch c是不是就变成处了呀?哎,所以通过它呢,也可以打这个东西呢,大同小异都差不多,你找一个你习惯用就行了,这个这个就是一点比较讨厌的地方,就是什么呢?英文是吧,英文但是也帮助你提高一下这个英文是吧,英文水平啊,可以用一下,待会尝试都尝试用一下啊,都尝试用一下,包括我们那什么呢,IE f12。
13:10
IE是不是也有啊,这有一个这个调试程序啊,调试程序你也可以点击这块,是不是也出大红点啊,然后一刷新到这儿干嘛呢?也可以停住啊,人家还给你来这么一标志是吧?告诉你停这了,诶告诉你停这了,在这块呢,也能对这个变量进行监视,你想看A直接选中来一什么呢?诶添加监视这一块,你也可以去添加监视,操作起来呢,都差不多啊,都差不多,然后执行起来呢,它这个玩意儿。也是这个啊,F10都是F11点,它是往下执行了,再往下执行了啊操作起来呢,都差不多啊,都差不多找一个你习惯就行了啊好,那这块呢,是我们说这个底bug一个调试,那这个呢,我们就先说到这儿停一下,待会你们自己来。
我来说两句