好吧,这是一个不寻常的问题,我不确定应该在哪里放置stackoverflow的哪个位置,所以如果有人可以告诉我,我很乐意在该位置提问。
问题
因此,我正在开发ExpressJS后端,并在邮递员中对其进行了测试。 以下代码是我感兴趣的。
response.status(200);
result.message = "Please Fill Registration Details";
result.data = {
code: 010101
};
result.status = "Successful";
这是一个简单的代码,这里没有问题,但是当我签入邮递员时,输出为:
{
"message": "Please Fill Registration Details",
"data": {
"code": 4161
},
"status": "Successful"
}
代码010101如何更改为4161?
我首先认为邮递员考虑将010101转换为二进制并将其转换为十进制,但是十进制值为21,十六进制值为15。
那么,这是怎么回事?有谁之前经历过这个吗 ? 我仍然需要在生产环境和实际设备中检查此API。 我将更新我的发现。
答案 0 :(得分:3)
它将010101
视为八进制数字,这就是JavaScript的工作方式。之所以认为它是八进制数字,是因为它没有被引号引起来。
以下是JavaScript的示例:
console.log(010101); //4161
因此,要修正您的代码,请用引号将您的值引起来:
result.data = {
code: "010101"
};
答案 1 :(得分:1)
JavaScript会将以0开头的数字理解为八进制(以8为底)。十进制的10101的十进制值为4161。如果要以前导零传递代码,请将其作为字符串“ 010101”传递。
答案 2 :(得分:0)
您选择了邮递员中的JSON格式...
除了JS不遵循类型规则之外,
让var1 = 010101; let var2 = Number(010101);