有关js中classList.remove用法的问题

我这里想提一个有关js中classList.remove用法的问题
class.remove在移除一个不存在的类时是不会报错的,所以我们有时候会直接写上类似于:ele.classList.remove(‘active’)这样的代码移除掉高亮的样式,但是为什么有时候还有“要去判断是否存在这个类,如果不存在直接移除的话就会报错”这种情况,比如:
先获取元素:
const active = document.querySelector(‘.active’)
然后利用逻辑中断去判断是否存在这个类,如果存在就移除,如果不存在就不移除:
active && active.classList.remove(‘active’)
那问题来了,既然之前说了classList.remove是删除一个不存在的类是都会执行,不会报错的的方法,为什么不直接写:
document.querySelector(‘.active’).classList.remove(‘active’)直接不管它有没有这个类都删除一遍,为下一个突出显示做服务呢?
我这里放了一张截图,我不明白为什么最后一段的代码不需要判断是否存在,直接写就不会报错,它的条件是如果向左滑动就会添加,不是向左就会移除,而且它本身是没有active这个类的,这个类是不存在的,那为什么我直接向右滑动触发else代码就不会报错呢?同样是不存在的类,为什么一个要判断是否存在后再移除,一个是可以直接用?
希望能有人帮我解惑一下,感激不尽

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/747008
  • 除此之外, 这篇博客: Java0基础入门实践宝典(一)中的         面向对象设计是一种程序设计技术。它将重点放在对象(即数据)和对象接口上。拿木匠打比方:一个“面向对象”的木匠,始终关注的是椅子,其次才会考虑用什么工具,一个“非面向对象”的木匠首先会考虑用什么工具。本质上,Java面向对象的能力与c++是一样的。Java与c++主要不同点在于多继承,Java中取而代之的是较简单的接口概念,相对于传统的面向过程语言(C、Basic 和 Pascal等),面向对象程序设计语言(C++、Java 和 C#等)在实现大型复杂项目时更加有效,面向对象基本思想是从现实世界中客观存在的事物(即对象)出发来构建软件系统,并在系统中尽可能的应用人类的自然思考方式,强调以事物为中心来思考问题,认识问题,并根据事物的本质特点,把他们抽象的表示为系统中的类,作为系统中的基本构成单元,使客观世界的事物在计算机系统中保持相互关联的本来面貌。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    • 跨平台

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^