有什么说什么,有错了就要认。
“今天我有个地方讲错了”,“然后我还说提出问题的同学有点过于纠结”。出问题要说清楚,来,事情是这样的。。。
截图一中,点击事件触发之后,要进行一个if判断,在这个if判断上一行,是一个三元选择符。我一边讲一边写代码一边录屏幕,讲到这里的时候,我想法是用这个三元的判断的值,来决定后面的代码是否执行。
我就一边写一边说,当_self.initbuyNum的值等于1,==比较运算符返回的值就是true,那么就返回false,否则返回true,写完代码之后就按f5刷新页面执行点击事件。
因为当时_self.initbuyNum的值确实等于1,那就不满足if( _self.initbuyNum > 1 )的条件,于是if判断中的语句没有被执行。
但当时我就进入了思维的死角,嘴里说着“返回”,下意识的认为是_self.initbuyNum == 1,然后三元判断返回false,使下面的js语句没有执行。而且在js中确实是return false 会停止执行js,我当时确实是这么想的,也是这么讲的。
然后有个远在新疆的同学就问我,“老尚,为什么return false可以停止js?”
我回答说,return false或是只有return,等于是函数返回结果了,这个函数自然就不再执行了。这个回答是没有问题的。
然后这个同学又问我,“那为什么return true也能停止函数?”
我回答说,这也是return 啊。
那这个同学又问我,那为什么三元判断里,false可以停止js执行,而true不会呢?
我想了想,确实是哈。我当时就说
截图中是我当时的原话,有录像为证的,零基础课的同学们都可以看到。当时吧,思路已经进入了错误的方向,所以我当时没想明白是什么原因。
下课之后,我静下心来想了想,“操,讲错了”。
我那行三元里根本没什么return语句,哪来的返回。代码截图那句三元根本没有起作用。
而接下来if没有起作用,是因为_self.initbuyNum的值大于1,不满足if条件,所以没有执行。
我当时错误的以为是三元比较结果的false了,而我当时是嘴里说着“返回false”,我脑子里就理解成return false了,所以认为是return。。停止js。
这是今天的教学事故的整个经过,拿出来跟大家说,主要也是为了警醒自己。有时,我有一种心态,就是我已经工作这么多年了,教教你们这些新人应该是没问题的。结果出现了今天的事情。
而且我还喷人家太纠结,哈哈,虽然那是我真实的看法。单独的讲,这个不要太纠结细节的说法应该也有一定的道理。但是和今天的讲课事故一起来看,就觉得有点太不像样。
哎,在这里跟全班同学们道个歉啊,对不起,请原谅。