为什么将数字转换为字符串(基本Javascript函数)

为什么将数字转换为字符串(基本Javascript函数),javascript,Javascript,我有这个函数(通过雄辩的Javascript教程第3章): 到 返回编号(编号) 但为什么这是必要的?我错过了什么 Javascript不是强类型的 number来自prompt()函数,该函数返回一个字符串。 因为您没有做任何事情来更改它的类型,所以它仍然是一个字符串 -number隐式转换并返回实际数字。Javascript不是强类型 number来自prompt()函数,该函数返回一个字符串。 因为您没有做任何事情来更改它的类型,所以它仍然是一个字符串 -number隐式转换并返回实际数字

我有这个函数(通过雄辩的Javascript教程第3章):

到 返回编号(编号)


但为什么这是必要的?我错过了什么

Javascript不是强类型的

number
来自
prompt()
函数,该函数返回一个字符串。
因为您没有做任何事情来更改它的类型,所以它仍然是一个字符串


-number
隐式转换并返回实际数字。

Javascript不是强类型

number
来自
prompt()
函数,该函数返回一个字符串。
因为您没有做任何事情来更改它的类型,所以它仍然是一个字符串

-number
隐式转换并返回实际数字。

提示符()
始终返回字符串,但当您输入负数时,它将被传递给
-number
调用并隐式转换为
数字。如果传递一个正数,则不会发生这种情况,
prompt()
接收的值将直接返回

正如您所发现的,您可以使用
Number()
,或者您可以使用
parseInt(Number,10)
,或者您可以执行
-(-Number)
将其翻转为负值,然后再次翻转为正值,或者更明显地,正如注释中指出的那样,
+Number
。(不要执行
--number
,这会将其转换为一个数字,然后将其递减)

提示符()
始终返回一个字符串,但当您输入负数时,它将被传递给
-number
调用并隐式转换为
数字。如果传递一个正数,则不会发生这种情况,
prompt()
接收的值将直接返回


正如您所发现的,您可以使用
Number()
,或者您可以使用
parseInt(Number,10)
,或者您可以执行
-(-Number)
将其翻转为负值,然后再次翻转为正值,或者更明显地,正如注释中指出的那样,
+Number
。(不要执行
--number
,这会将其转换为一个数字,然后将其递减)

如果您有一个字符串需要转换为一个数字,请执行以下操作:

var numString = '3';
var num = parseInt(numString);
console.log(num); // 3

如果您有需要转换为数字的字符串,请执行以下操作:

var numString = '3';
var num = parseInt(numString);
console.log(num); // 3

JavaScript执行类型之间的自动转换。您输入的“number”很可能是字符串(您可以通过显示
typeof(number)
的结果进行验证)

-
不将“string”作为参数,因此它将首先转换为数字,然后再求反。当
typeof(“3”)
为字符串时,可以使用一元
+
获得相同的行为:
typeof(+“3”)
为数字


对于二进制
-
-也会发生同样的情况,将操作数转换为数字<代码>+
更有趣,因为它同时处理两个字符串
“1”+“2”
是“12”,但
1+2
是3。

JavaScript执行类型之间的自动转换。您输入的“number”很可能是字符串(您可以通过显示
typeof(number)
的结果进行验证)

-
不将“string”作为参数,因此它将首先转换为数字,然后再求反。当
typeof(“3”)
为字符串时,可以使用一元
+
获得相同的行为:
typeof(+“3”)
为数字


对于二进制
-
-也会发生同样的情况,将操作数转换为数字
+
更有趣,因为它可以同时处理两个字符串
“1”+“2”
是“12”,但
1+2
是3。

@mgraph:Try
parseInt(“042”)
@NickBeranek:它是八进制。您需要通过添加
,10
@mgraph:Try
parseInt(“042”)
@NickBeranek:it是八进制来强制将其解析为十进制。您需要通过添加
,10
@SLaks确实,过度复制是我的中间名。@SLaks确实,过度复制是我的中间名。
var numString = '3';
var num = parseInt(numString);
console.log(num); // 3