为什么将数字转换为字符串(基本Javascript函数)
我有这个函数(通过雄辩的Javascript教程第3章): 到 返回编号(编号)为什么将数字转换为字符串(基本Javascript函数),javascript,Javascript,我有这个函数(通过雄辩的Javascript教程第3章): 到 返回编号(编号) 但为什么这是必要的?我错过了什么 Javascript不是强类型的 number来自prompt()函数,该函数返回一个字符串。 因为您没有做任何事情来更改它的类型,所以它仍然是一个字符串 -number隐式转换并返回实际数字。Javascript不是强类型 number来自prompt()函数,该函数返回一个字符串。 因为您没有做任何事情来更改它的类型,所以它仍然是一个字符串 -number隐式转换并返回实际数字
但为什么这是必要的?我错过了什么 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:TryparseInt(“042”)
@NickBeranek:它是八进制。您需要通过添加,10
@mgraph:TryparseInt(“042”)
@NickBeranek:it是八进制来强制将其解析为十进制。您需要通过添加,10
@SLaks确实,过度复制是我的中间名。@SLaks确实,过度复制是我的中间名。
var numString = '3';
var num = parseInt(numString);
console.log(num); // 3