“数字”功能在JavaScript中的作用是什么?

时间:2015-11-19 17:15:41

标签: javascript

var num = Number(prompt("Pick a number", "0"));
if (num < 10) 
    alert("Small");  
else if (num < 100) 
    alert("Medium");  
else 
    alert("Large");  

我只是对Number在此代码中所做的事情感到困惑。 如果我这样做会发生什么:

var num = prompt("Pick a number", "0");  

1 个答案:

答案 0 :(得分:4)

Number将传递的值转换为数字值。例子:

> Number(10)
10
> Number("10")
10
> Number(true)
1
> Number("0x11")
17
> Number("foo")
NaN

它执行显式类型转换为数字。

还有StringBoolean基本相同,但转换为字符串和布尔值。

  

如果我这样做会怎么样......

prompt将始终返回字符串值。但是,在您的具体示例中,它实际上不会产生影响,因为关系比较运算符(<)将隐式执行相同类型转换 。即

a < 10
// is the same as
Number(a) < 10

尽管如此,我还是说执行显式类型转换是一种很好的做法,因为它使代码的其余部分更清晰,你会期望什么类型。

注意:也可以使用Number来呼叫new,即new Number(...),但是会返回一个数字对象而不是原始数值。这很少使用。