【发布时间】:2019-06-11 11:12:56
【问题描述】:
在检查数字类型是否大于零 (0) 时,使用 条件、强制 和 布尔转换 有什么区别?
每个都会给出相同的输出
var zero = 0;
var three = 3;
// condition
zero > 0 //false
three > 0 //true
null > 0 //false
// coercion
zero ? true : false; //false
three ? true : false; //true
null ? true : false; //false
// Boolean conversion
Boolean(zero); //false
Boolean(three); //true
Boolean(null); //false
这些操作有什么区别? (在速度/性能、原则、实践等方面)
【问题讨论】:
-
为什么对已经是布尔值的条件运算符?顺便说一句,零是假的,任何负数都是真的。
-
zero > 0是一个布尔值,而zero ? ...是一个 truthy or falsy 值。顺便说一句zero > 0zero > 0 ? true : false -
条件表达式是唯一在检查负数时有效的表达式,所以我猜使用那个更有意义...
-
@ColdCerberus 你用得很好,它与真实的不同,一个很好的答案:stackoverflow.com/a/19915864/3936644
标签: javascript if-statement type-conversion conditional coercion