effective js-5-避免对混合类型使用==运算

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>js-避免对混合类型使用==运算</title>

</head>

<body>

<script>

</script>

<p>

扫描二维码关注公众号,回复: 508176 查看本文章

★★★关于 避免对混合类型使用==运算 必须知道的是★★★:

虽然之前有提到过,此节重点讲述 ==。

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>

猜你喜欢

转载自mumu-shoucang.iteye.com/blog/2279135