true=='true'

164 阅读2分钟

基础知识

相等操作符

在转换不同的数据类型时,相等和不相等操作符遵循下列基本规则:

  1. 如果有一个操作数是布尔值,则在比较相等性之前先将其转换为数值——false转换为0,而true转换为1;
  2. 如果一个操作数是字符串,另一个操作数是数值,在比较相等性之前先将字符串转换为数值;
  3. 如果一个操作数是对象,另一个操作数不是,则调用对象的valueOf()方法,用得到的基本类型值按照前面的规则进行比较

Number()函数的转换规则

  1. 如果是Boolean值,true和false将分别被转换为1和0。

  2. 如果是数字值,只是简单的传入和返回。

  3. 如果是null值,返回0。

  4. 如果是undefined,返回NaN。

  5. 如果是字符串,遵循下列规则:

    • 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本身