js中关于if() 和 == 的判断

if的判断

 

原理

类型结果
Undefined false
Null false
Boolean 直接判断
Number +0, −0, 或者 NaN 为 false, 其他为 true
String 空字符串为 false,其他都为 true
Object true

 

举例

判断下面的输出内容

if ("hello") {
    console.log("hello")
}   //输出 hello

if ("") {
    console.log('empty')
} //没有输出

if (" ") {
    console.log('blank')
} //输出blank

if ([0]) {
    console.log('array')
} //输出array

if('0.00'){
  console.log('0.00')
} // 输出0.00

 

==的判断

 

原理

xy结果
null undefined true
Number String x == toNumber(y)
Boolean (any) toNumber(x) == y
Object String or Number toPrimitive(x) == y
otherwise otherwise false

toNumber

typeResult
Undefined NaN
Null 0
Boolean ture -> 1, false -> 0
String "abc" -> NaN, “123” -> 123

toPrimitive
对于 Object 类型,先尝试调用 .valueOf 方法获取结果。 如果没定义,再尝试调用 .toString方法获取结果

 

举例

判断下面的输出内容

"" == 0  //  true
" " == 0  // true
"" == true  // false
"" == false  // true
" " == true  // false

!" " == true  // false
!" " == false  // true
"hello" == true  // false
"hello" == false // false
"0" == true  // false
"0" == false  // true
"00" == false  // true
"0.00" == false  // true

undefined == null  // true
true == {}  // false
[] == true  // false

var obj = { 
  a: 0, 
  valueOf: function(){return 1} 
} 

obj == "[object Object]"  // false
obj == 1  // true
obj == true  // true


作者:张柴柴
链接:https://www.jianshu.com/p/a9c44c467f44
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
posted @   八英里  阅读(2171)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示