为什么'null >= 0 && null <= 0'而不是'null == 0'?
2022-08-30 02:21:40
我必须编写一个例程,如果变量的类型是,则将变量的值递增1,如果不是,则将0分配给变量,其中变量最初是或 。number
null
undefined
第一个实现是因为我认为任何不是数字的东西都会使算术表达式出错,但它是错误的,因为它被评估为true。然后我学会了像0这样的行为,下面的表达式都被计算为true。v >= 0 ? v += 1 : v = 0
null >= 0
null
null >= 0 && null <= 0
!(null < 0 || null > 0)
null + 1 === 1
1 / null === Infinity
Math.pow(42, null) === 1
当然,不是0。 被评估为 false。这使得看似重言式的表达是错误的。null
null == 0
(v >= 0 && v <= 0) === (v == 0)
为什么像0一样,尽管它实际上不是0?null