基础知识
相等操作符
在转换不同的数据类型时,相等和不相等操作符遵循下列基本规则:
- 如果有一个操作数是
布尔值,则在比较相等性之前先将其转换为数值——false转换为0,而true转换为1; - 如果一个操作数是
字符串,另一个操作数是数值,在比较相等性之前先将字符串转换为数值; - 如果一个操作数是
对象,另一个操作数不是,则调用对象的valueOf()方法,用得到的基本类型值按照前面的规则进行比较
Number()函数的转换规则
-
如果是Boolean值,true和false将分别被转换为1和0。
-
如果是数字值,只是简单的传入和返回。
-
如果是null值,返回0。
-
如果是undefined,返回NaN。
-
如果是字符串,遵循下列规则:
-
1)如果字符串中只包含数字(包括前面带加号或负号的情况),则将其转换为十进制数值, 即"1"会变成1,"123"会变成123,而"011"会变成11(注意:前导的零被忽略了);
-
2)如果字符串中包含有效的浮点格式,如"1.1",则将其转换为对应的浮点数值(同样,也会忽略前导零);
-
3)如果字符串中包含有效的十六进制格式,例如"0xf",则将其转换为相同大小的十进制整数值;
-
4)如果字符串是空的(不包含任何字符),则将其转换为0;
-
5)如果字符串中包含除上述格式之外的字符,如
'true',则将其转换为NaN。(NaN与任何值都不相等,包括NaN本身)
-
判断true=='true'
1. true-布尔值
- 直接转化为数字1
2. 'true'-字符串
- 满足上述5.5number转换规则,转换为NaN
3. 判断1==NaN-----false
- 因为NaN与任何值都不相等,包括NaN本身