Javascript 为什么在JSON.parse调用后整数值会更改

Javascript 为什么在JSON.parse调用后整数值会更改,javascript,node.js,Javascript,Node.js,代码: 输出: var string = '{"id": 2,"process_id": 1123565935011360768}'; console.log('Before JSON.parse:',string); string = JSON.parse(string); console.log('After JSON.parse:',string); 为什么要使用JSON.parse更改进程\u id? 它以某种方式对最后的数字进行循环,就像它是一个浮点值一样。JavaScript中的所

代码:

输出:

var string = '{"id": 2,"process_id": 1123565935011360768}';
console.log('Before JSON.parse:',string);
string = JSON.parse(string);
console.log('After JSON.parse:',string);
为什么要使用JSON.parse更改进程\u id?
它以某种方式对最后的数字进行循环,就像它是一个浮点值一样。

JavaScript中的所有数字都是浮点数。(请参见:)因此,数字将转换为其最接近的可表示值。用作标识符的长随机数,通常存储为字符串

参考MAX\u SAFE\u INTEGER好的,我明白你的意思。但是在javascript中安全地使用20位数字有什么解决方案。@Vxankit高质量的建议可能需要更多关于您想要实现的内容的上下文,但是像这样的库是可用的:
Before JSON.parse: {"id": 2,"process_id": 1123565935011360768}
After JSON.parse: {id: 2, process_id: 1123565935011360800}