Javascript 将前导零数字转换为字符串,即015转换为“0”;015“;

Javascript 将前导零数字转换为字符串,即015转换为“0”;015“;,javascript,Javascript,我在将前导零数字转换为字符串时遇到问题 输入: function numToString(num) { num = num + ""; return num; } numToString(015); // outputs "13" 输出: numToString(015); // outputs "13" 期望输出: numToString(015); // outputs "15" 以数字13的八进制表示的数字015 不能将前缀设置为0,并将其以10为基数。如果你想把它打印成15,只需通

我在将前导零数字转换为字符串时遇到问题

输入:

function numToString(num) {
num = num + "";
return num;
}
numToString(015); // outputs "13"
输出:

numToString(015); // outputs "13"
期望输出:

numToString(015); // outputs "15"
以数字13的八进制表示的数字015

不能将前缀设置为0,并将其以10为基数。如果你想把它打印成15,只需通过

numToString(15);或numToString(017)

编辑:

如果您确实想将八进制打印为字符串,请按如下所示修改代码

function numToString(num) {
num = num.toString(8) + "";
return num;
}

numToString(015); // outputs "15"
以数字13的八进制表示的数字015

不能将前缀设置为0,并将其以10为基数。如果你想把它打印成15,只需通过

numToString(15);或numToString(017)

编辑:

如果您确实想将八进制打印为字符串,请按如下所示修改代码

function numToString(num) {
num = num.toString(8) + "";
return num;
}

numToString(015); // outputs "15"

问题并非如前所述。除非您使用
eval
来评估在运行时组合在一起的一些代码,
numToString(015)
是程序员输入的东西,
015
是编译脚本时转换为数字的数字源代码文本

整数的十进制数字文字必须以非零数字开头。在严格模式下,以
0
开始整数将引发错误:

函数f(){
“严格使用”
返回015
}

f()
问题不在前面说明的范围内。除非您使用
eval
来评估在运行时组合在一起的一些代码,
numToString(015)
是程序员输入的东西,
015
是编译脚本时转换为数字的数字源代码文本

整数的十进制数字文字必须以非零数字开头。在严格模式下,以
0
开始整数将引发错误:

函数f(){
“严格使用”
返回015
}

f()
为什么不首先将其写为15?@lumio,因为输入在开头应该是一个数字15是一个数字。或者我遗漏了什么,JS会识别任何带前导零的数字(没有8s或9s),而octalIt不会。当它首先是一个数字时,您不需要转换它:)当它来自输入字段时,它已经是一个字符串。做
parseInt(input,10)
就可以了。为什么不先把它写成15呢?@lumio,因为输入在开头应该是一个数字15是一个数字。或者我遗漏了什么,JS会识别任何带前导零的数字(没有8s或9s),而octalIt不会。当它首先是一个数字时,您不需要转换它:)当它来自输入字段时,它已经是一个字符串。做
parseInt(输入,10)
就可以了。