【问题标题】:Why Javascript changing the value of an attribute? Not passing it to another variable [duplicate]为什么 Javascript 会改变属性的值?不将其传递给另一个变量[重复]
【发布时间】:2021-01-29 21:04:19
【问题描述】:

所以,我有:

const Transaction = {
   all: [{
      description: 'Luz',
      amount: -50000,
      date: '23/01/2021',
   }, {
      description: 'Website',
      amount: 056,
      date: '23/01/2021',
   }, {
      description: 'Internet',
      amount: -25000,
      date: '23/01/2021',
   }, {
      description: 'App mobile',
      amount: 900000,
      date: '23/01/2021',
   }]
}

然后我在控制台上打印它而不做任何事情:

const App = {
   init() {
      Transaction.all.forEach((transaction) => {
         console.log(transaction)
      })
   }

输出是:

{description: "Luz", amount: -50000, date: "23/01/2021"}
{description: "Website", amount: 46, date: "23/01/2021"}
{description: "Internet", amount: -25000, date: "23/01/2021"}
{description: "App mobile", amount: 900000, date: "23/01/2021"}

为什么网站数量(声明为056)变成了46??

【问题讨论】:

  • 056八进制 转换为 46 十进制。
  • 感谢 VLAZ 我不知道并解决了声明数量的问题:Number('056')

标签: javascript


【解决方案1】:

由于前导零,该值被解释为八进制,然后将该值转换为十进制。

只需删除前导零即可避免混淆。

【讨论】:

  • 实际上,由于其他一些处理,我需要初始零。我已经通过这样定义来解决它:数量:数字('056')。我不知道它可能与八进制有关。 :D 谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-15
  • 2021-02-27
  • 2014-01-11
  • 2016-08-26
  • 2018-10-31
  • 1970-01-01
相关资源
最近更新 更多