视频中判断条件的问题

视频中判断条件的问题

http://img1.sycdn.imooc.com//climg/5eb44f4b08f42f0a08220629.jpg

1、为什么框框里面的if语句判断el存不存在,而下面else却没做这个判断?
2、判断el存不存在有什么用?
请老师帮忙详细解答下

正在回答

登陆购买课程后可参与讨论,去登陆

4回答

同学你好,没错,这样写就行了,没有更好的方式了。同学想要多了解思路这个想法值得表扬哦,真是一个爱学习的孩子,赞!

祝学习愉快 ~

好帮手慕夭夭 2020-05-08 15:01:20

同学你好,说的是如下if判断为什么没有判断els的存在吗? 这里老师确实忘记加了,同学想的比较周到,判断一下els更好哦。当然了,对于当前例子,因为元素肯定是存在的,加不加都行。本课程内容在实际开发中不常用,了解一下就行。

http://img1.sycdn.imooc.com//climg/5eb5014d0967f46a04160205.jpg

祝学习愉快 ~

  • 提问者 人生的起源 #1
    如果判断els,是不是写成 if (els[i] && els[i].id === id)? 还是有更好的办法一次性全判断,不用一个一个判断? 我知道这个例子工作中不太常用,主要是想多了解一些思路,毕竟工作中有些事情是大同小异的,像这种先判断存不存在,再判断条件经常见到,以前一直不理解,所以才多问了下,只有懂得为什么这么做,才容易记住,靠背很快就忘了,谢谢老师的耐心讲解
    2020-05-08 15:30:44
好帮手慕夭夭 2020-05-08 11:03:26

同学你好,问题解答如下:

1.else不需要判断,因为不符合if条件的,自然会执行else。条件只有存在或者不存在两种情况,如果不存在,就会自己执行else哦。

2.逻辑与中,如果第一个操作数返回false,则第二个操作数就不会执行了。所以这里判断el如果不存在,就不用去判断el.id===id了。这样避免el不存在的时候,获取el的id值报错。

http://img1.sycdn.imooc.com//climg/5eb4ca38092bcae704500183.jpg

给同学举一个例子:

如下没有判断box存在,因为box是不存在的,所以获取的是undefined,undefined没有id属性,获取id属性就会报错。

        http://img1.sycdn.imooc.com//climg/5eb4cb74099b195804710200.jpg

  如下报错读取不到id属性

        http://img1.sycdn.imooc.com//climg/5eb4cbb1095fa87207120072.jpg

加上判断之后,box返回undefined,undefined转换为布尔类型为false,此时表达式返回false不符合if条件就会执行else了。

http://img1.sycdn.imooc.com//climg/5eb4cbf3093f849d05130144.jpg

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 提问者 人生的起源 #1
    谢谢这位老师的详细讲解,你的回答解决了我第2个问题的疑惑 我第1个问题你们可能还没明白,我想问的是,if语句有判断el存不存在,在else语句里,也有用document.all获取了一些元素,是不是也要先判断这些元素存不存在,然后再进一步判断它们的id值是否符合?
    2020-05-08 12:29:24
好帮手慕粉 2020-05-08 10:50:22

同学你好,关于同学的问题回答如下:

1、在else里面的条件,el是可以不存在的,下面会通过document.all方法进行获取元素:

http://img1.sycdn.imooc.com//climg/5eb4c811092b155206790433.jpg

如果是IE高版本 ,是不需要执行else里面的操作(因为IE8及以上是不会出现这个bug的。直接返回元素就可以了),所以执行的是if里面的语句,此时就要判断通过document.getElementId()这个方法有没有获取到元素,这才有if里面的判断。

2、判断el是否存在,只是加了一个多重保障而已。

祝学习愉快~

  • 提问者 人生的起源 #1
    那else里面为什么不用判断els存不存在? 我觉得和if里面判断el存不存在是一个道理,既然上面有判断,下面也要判断才是啊
    2020-05-08 10:59:23
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师