javascript - 为什么这些 JavaScript 对象列表属性返回错误值?

标签 javascript object properties

我不明白为什么下面的代码会返回看似错误的值(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/

相关文章:

javascript - 如何检查对象的属性值?

java - 使用配置文件设置 Java 系统属性

java - 发送电子邮件的主题

javascript - 打开 jquery 对话框时保持滚动位置

javascript - 等待最后指令有用吗

javascript - JQuery对象通过ajax向PHP发送邮件()

javascript - 当我使用 .print() 函数时,AJAX 返回空页

Python 猴子修补对象未按预期工作

javascript - 通过循环构建 JSON 数组

c# - 如何获取类的属性列表?