为什么`null> = 0 && null <= 0`但不是`null == 0`?
我必须编写一个例程,如果变量的类型是number,则将变量的值增加1,如果不是,则将变量赋值给0,其中变量最初为null或undefined。
第一个实现是v >= 0 ? v += 1 : v = 0因为我认为任何不是数字都会使算术表达式为false,但是由于null >= 0被评估为true ,所以它是错误的。然后我学会了null类似于0的行为,并且以下表达式都被评估为true。
null >= 0 && null <= 0
!(null < 0 || null > 0)
null + 1 === 1
1 / null === Infinity
Math.pow(42, null) === 1
当然,null不是0. null == 0被评估为假。这使得看似同义的表达是(v >= 0 && v <= 0) === (v == 0)错误的。
为什么它null像0,虽然它实际上不是0?
素胚勾勒不出你
繁华开满天机
LEATH
千万里不及你
随时随地看视频慕课网APP
相关分类