js中使用==和===的差别为什么这么大?

我要做的效果就是当鼠标移动到哪个分类时,哪个分类就加上一个有绿色背景色的类,但是为什么我使用==来判断和===来判断时差别这么大呢?!

这是在vue中的template里面的一块代码:

      <li
        v-for="item in menuList"
        :key="item.id"
        @mouseenter="categoryId = item.id"
        :class="{ active: categoryId === item.id }"
就是最后这一行
      >

使用==时重新刷新时的界面:

使用===判断时,重新刷新的界面:

球球好心人解答!感激不尽

阅读 1.4k
3 个回答

不知道你的categoryIditem.id的值的情况下很难说明清楚。
我只能猜测,由于=====更宽松,你的页面加载的时候,categoryId == item.idtrue,但categoryId === item.idfalse,所以在使用==的情况下,所有<li>class都被加上了active,而===没有这个问题。

== 不校验类型

=== 校验类型

console.log( 1 == '1')
console.log( 1 !== '1')
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题