标签:
Javascript 中,数字 0 为假,非0 均为真
在条件判断运算 == 中的转换规则是这样的:
如果比较的两者中有布尔值(Boolean),会把 Boolean 先转换为对应的 Number,即 0 和 1,然后进行比较。
如果比较的双方中有一方为 Number,一方为 String时,会把 String 通过 Number() 方法转换为数字,然后进行比较。
如果比较的双方中有一方为 Boolean,一方为 String时,则会将空字符串""转换为 false,除此外的一切字符串转换为 true,然后进行比较。
如果比较的双方中有一方为 Number,一方为Object时,则会调用 valueOf 方法将Object转换为数字,然后进行比较。
隐式类型转换会给我们造成很多麻烦,那么该怎么避免呢?
建议在所有使用条件判断的时候都使用全等运算符 ===
来进行条件判断。全等运算符会先进行数据类型判断,并且不会发生隐式类型转换。
标签:
原文地址:http://www.cnblogs.com/phen/p/5437854.html