【问题标题】:javascript deposit function returning NaNjavascript存款函数返回NaN
【发布时间】:2019-10-20 11:34:46
【问题描述】:

我正在为账户存款编写一个函数,该函数将返回账户余额,但是当我调用该函数时它确实返回 NaN

    deposit(amount){
    let accountBalance;
    accountBalance += amount;
    return accountBalance;
    }
    console.log(accountUser.deposit(2000));

【问题讨论】:

标签: javascript


【解决方案1】:

在使用 += 之前,您需要定义 accountBalance 的值。

let accountBalance = 0;
accountBalance += amount;

这是因为未定义 + 任何数量都是“非数字”

【讨论】:

  • 已经尝试过了,它实际上返回了一个值,但不是预期的,因为我在 += amount 之前将 accountBalance 设置为 0
  • 您需要将 accountBalance 设置为当前帐户余额。如果您尝试使用在此函数之外定义的名为 accountBalance 的现有变量,则应删除 let 声明,因为这将覆盖范围。
【解决方案2】:

如果您将 accountBalance 变量设置为全局变量,那么您可以在您的存款函数中使用该变量。

var accountBalance = 100;

function deposit(amount){
    accountBalance += amount;
    return accountBalance;
}

console.log(deposit(2000));

【讨论】:

  • 实际上,我每次存款时,我都希望 accountBalance 会增加,而不是退回存款金额
【解决方案3】:

undefinedtype 是“字符串文字”的 para-primitive,而不是 null 这是“数字原语”的准原语 - 因此字符串文字 + 任何其他 JavaScript 类型在表达式中添加其值的字符串表示形式。

因此,如果您有 a = undefined [与您的 let a;] 声明相同,然后使用 a + 3 与编写 "undefined" + 3 并评估其相同: (string + number ) =钠; 使用适当的类型则完全相反...:因为 nullundefined 类型 related 与未定义值的较高等级真正的 object 的,它将强制转换为 0 数字原语,并评估 (numerical[empty] + number) = 3,实际上是0 + 3 = 3。 Bekim Bacaj &copy

因此,您需要确保至少声明了正确的类型变量和命题,然后再将它们与特定类型值组合使用并进行交互。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多