<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>js-当心隐式的强制类型转换</title>
</head>
<body>
<script>
</script>
<p>
★★★关于隐式的强制类型转换必须知道的是★★★:
1. JS对类型错误比较宽松,在大多数情况下不会抛出一个错误,而是按照多种转换规则将值转成期望的类型,比如:
(1). number + boolean运算,boolean 转成number; 2 + false = 2;
(2). -,*,/,%在运算之前都尝试将操作数转成数字
(3). 位运算会将操作数转成数字
(4). + 运算符两种意思,第一是 加法运算,第二是 字符串连接,
需要注意的是,如果 + 作用于一个同时拥有toString 方法和 valueOf 方法时,JS会选择 valueOf 方法
2. 真值运算,也是比较常用的做法
(1). JS中有7个假值:false, 0, -0, NaN, null, undefined, ""
比如:
if(str) {// do something}
if(ary.length) {// do something}
(2). == 比较
"3" == 3; // true
"3" === 3; // false
"3" === "3"; // true,在数据类型都确定的情况下,请使用这种比较方式。
"123" == new String("123"); // true
"123" === new String("123"); // false
new String("123") == new String("123"); // false
new String("123") === new String("123"); // false,此种比较更得是false了。哈哈
</p>
</body>
</html>