当x ==!x在javascript中返回true时的情况

时间:2014-01-07 04:23:34

标签: javascript compare equals

当字符串仅包含空白字符(例如:space,tab,newline char)时,x == !x将返回true

示例:

"\t\n\r" == !"\t\n\r" // true

这是因为与==比较时,只有空白字符的字符串会转换为0, 但对于!"\t\n\r"被视为非空字符串,因此!"\t\n\r"false0 == false返回true。

问题是,当x == !x返回true时,这是唯一的情况(字符串只有空白字符)吗? 还有其他任何例子吗?


受@Ted Hopp的回答启发:

除了空字符串""之外的每个字符串都可以转换为0使x == !x成立。

示例:

"0.0" == !"0.0"
"608E-4234" == !"608E-4234"

2 个答案:

答案 0 :(得分:4)

这也是true

"0" == !"0"

其他情况类似 - 强制转换为int时评估为0的任何非空字符串都适用于x == !x

答案 1 :(得分:0)

这也是如此

" " == !" "

即使" "也可以投放到0