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
==的判断
原理
x | y | 结果 |
---|---|---|
null | undefined | true |
Number | String | x == toNumber(y) |
Boolean | (any) | toNumber(x) == y |
Object | String or Number | toPrimitive(x) == y |
otherwise | otherwise | false |
toNumber
type | Result |
---|---|
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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· 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