!!
始终可以将 String ,undefined
, Object 和 Number 类型转换为 JavaScript中的布尔类型:
!!0 // false
!!1 // true
!!10 // true
!!"" // true
!!"any" // true
!!undefined // false
!!null // false
!!NaN // false
!!{} // true
似乎使用!!
是完全安全的。我见过有人用它来转换变量。
但我不确定将{em> String 类型转换为 Number 类型的++
或--
。在这些示例中,使用++
进行转换是安全的:
var ten = "10";
ten++ // 10
var nineHalf = "9.5";
nineHalf++ // 9.5
var n = "-10.06";
n++ // -10.06
是否有++
/ --
无效parseFloat
的情况?
答案 0 :(得分:8)
只需使用一个+
(一元加运算符)。这是一种常见的做法,就像布林人的!!
一样。
(+"10.06")
++
版本让我害怕增量操作员在我不看的时候做恶行为。
编辑:当然,postIncrement运算符甚至不能处理字符串文字。
"10.06"++ //syntax error
答案 1 :(得分:2)
唯一的一点是它有一个副作用,即在原始变量中加一个。
的影响var n = "-10.06";
n++
例如,与
相同var n = "-10.06";
Number(n)++
基本上,任何数学运算符在应用于字符串时都会首先使用Number
函数将其转换为数字。