<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>js-避免对混合类型使用==运算</title>
</head>
<body>
<script>
</script>
?
<p>
?
★★★关于 避免对混合类型使用==运算 必须知道的是★★★:
虽然之前有提到过,此节重点讲述 ==。
?
1. 原因:
存在隐式的类型转换
2. 方法:
写自己的显示类型转换程序
3. 类型不同时,== 运算符的隐式强制转换规则:
参数类型1 | 参数类型2 | 强制转换 |
null | undefined | 不转换,总是返回 true |
null或undefined | 其他非null或undefined类型 | 不转换,总是返回 false |
boolean,number,string | boolean,number,string |
将原始类型转换为数字 0 == false; 1 == true; 3 == false; "" == false; "0" == false; "1" == true; "1" == 1; "0" == 0; "" == 0; |
boolean,number,string | Date对象 |
将原始类型转换为数字 Date转换为原始类型(优先尝试toString(),再尝试valueOf()) |
boolean,number,string | 非Date对象 |
将原始类型转换为数字 非Date对象转换为原始类型(valueOf->toString) |
?
?
?
?
?
</p>
</body>
</html>
原文:http://mumu-shoucang.iteye.com/blog/2279135