我可以一直使用++或 - 作为parseFloat的简写吗?

时间:2011-10-11 01:24:16

标签: javascript

!!始终可以将 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的情况?

2 个答案:

答案 0 :(得分:8)

只需使用一个+(一元加运算符)。这是一种常见的做法,就像布林人的!!一样。

(+"10.06")

++版本让我害怕增量操作员在我不看的时候做恶行为。


编辑:当然,postIncrement运算符甚至不能处理字符串文字。

"10.06"++  //syntax error

答案 1 :(得分:2)

唯一的一点是它有一个副作用,即在原始变量中加一个。

的影响
var n = "-10.06";
n++
例如,

相同
var n = "-10.06";
Number(n)++

基本上,任何数学运算符在应用于字符串时都会首先使用Number函数将其转换为数字。