最近在完善我的云笔记项目,过程中踩了不少坑,最近遇到的一个我觉得需要记录一下。
在我的项目中,我一般是用 === 来判断两个值是否相等,然后进行一系列操作的,这在没有后端交互时很方便,因为等号两边的数据我都知道是什么类型的做个类型转行即可正确使用 === 。
但是,在有后端交互的项目中,我们获取到的数据类型都是不确定的,比如我云笔记项目中返回的笔记列表,每个笔记都有个 id,根据后端人员写的代码,这个 id 可能是 number,也可能是string,这就是一个不大不小的坑了。
在云笔记项目中我犯了个错,默认了返回的数据的 id 类型是 number,然后我又我习惯性使用===,就导致了项目出 bug 。
就像这样,都是 curBookId,因为在不同页面点击后,用到了不同的 api,返回的 id 类型一个是 number 一个是 string
所以这个数据对应的那部分代码,只能先对 curBookId 做个类型转换,才能跟某个类型的 id 进行比较来操作
总结
当然,用 == 在我上面的场景中,大多数情况是没问题的。不过既然用 == 在 webstorm 会画黄线,并让你用===替换,如下图
那为何不写严谨点让代码界面更干净呢?