我不明白为什么下面的代码会返回看似错误的值(150 而不是 100):
var price = {
33427009000001024: 100,
33427009000001025: 150,
33427010000001026: 200
};
alert(price[33427009000001024] + "," + price["33427009000001024"]);
显示值:150,150
我通过将对象属性括在引号中来修复它:
var price = {
"33427009000001024": 100,
"33427009000001025": 150,
"33427010000001026": 200
};
但我不明白是否真的需要引号,为什么我没有收到错误而只是错误的值?
最佳答案
您的整数值大于 Integer Max-Value
因此,它四舍五入为相同的值
33427009000001024 == 33427009000001025 // outputs true
33427009000001024 === 33427009000001025 // outputs true
关于javascript - 为什么这些 JavaScript 对象列表属性返回错误值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34986794/