哪一个是正确的?警报((+“123”))警报(+“123”)警报(+(“123”))

时间:2013-04-24 14:24:27

标签: javascript nan

我试图将字符串转换为浮点数。我知道parseFloat()可以做到这一点,但我也发现了下面的语法,但没有太多参考。

正确的语法是什么,因为它们似乎都有效。我在哪里可以了解更多相关信息?我不知道如何谷歌它,因为我不知道它的名字。

// syntax 1
alert((+"123"));    // 123
alert((+"x123"));   // NaN
alert((+"123x"));   // NaN
alert((+"123   ")); // 123
alert((+"   123")); // 123
alert((+"12 3"));   // NaN

// syntax 2
alert(+"123");      // 123
alert(+"x123");     // NaN
alert(+"123x");     // NaN
alert(+"123   ");   // 123
alert(+"   123");   // 123
alert(+"12 3");     // NaN

// syntax 3
alert(+("123"));    // 123
alert(+("x123"));   // NaN
alert(+("123x"));   // NaN
alert(+("123   ")); // 123
alert(+("   123")); // 123
alert(+("12 3"));   // NaN

2 个答案:

答案 0 :(得分:3)

它们在语法上都是正确的......但是示例1和3有多余的括号。

答案 1 :(得分:2)

这称为隐式转换。由于您使用了数学运算符(+),因此它会尝试将字符串转换为数学运算所需的数值。你在这里问的是给我以下字符串的正值。