首页 > javascript 中 ' ' 是true 还是false 的问题

javascript 中 ' ' 是true 还是false 的问题

上面一段中,把 ' '当做true 来处理了,下面确是 ' ' == false ,这是为什么呢?(单引号之间有个空格)



== 引起的转型

规则是:

  1. 如果有一个操作数是NaN,马上返回false。

  2. 如果有一个操作数是boolean值,则在比较相等性之前,先转成数值,false转0,true转1。

  3. 如果一个操作数是字符串,另一个操作数是数值,在比较相等性之前先将字符串转为数值。

  4. 如果一个操作数是对象,另一个操作数不是,则调用对象的valueOf方法,用得到的基本类型值按照前面 的规则进行比较。

  5. null == undefined --> true

  6. 如果两个操作数是对象,则比较它们是不是同一个对象,如果两个操作数都指向同一个对象,则相等 操作符返回true,否则,返回false


按照上面的规则2,可知,false --> 0。
所以问题转成 ' ' == 0。
然后根据规则3。' '会转成数字0,
0 == 0 当然返回true了。。

请看我写的关于转型的文章。链接描述

【热门文章】
【热门文章】