改成三个等号 错误提示就消失了,这是为什么呢?
解决方案
这个问题设计到Javascript中的类型转换,==
比较算法是这样的。
- 如果
==
两边的类型相同,则使用===
比较算法 - 如果
==
两边是不同的类型,则将转换为相同类型,一般对于普通类型,如string,将转化为数字;对于对象和数组,则调用它们的valueOf或toString转换。最后对转化后的结果进行比较
而===
比较算法相对简单,易于理解,两边不仅值相等,而且具有相同类型,否则返回false。
如果对于我上面==
的解释你没有看懂,非常好,问题的核心就在这里,因为Javascript中类型转化比较复杂,一般不赞成使用==
进行比较,而尽量使用===
比较。
当然,如果你想掌握Javascript,我建议你在了解类型转化的各种细节的前提下,灵活运用。
可以参考我编写的一篇文章(有墙)http://cattail2012.wordpress.com/2012...