effective js-3-当心隐式的强制类型转换

<!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>

猜你喜欢

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