gpt4 book ai didi

JavaScript 返回 'memory' 作为 0,即使我增加或减少它的值

转载 作者:行者123 更新时间:2023-11-28 04:52:43 25 4
gpt4 key购买 nike

代码: http://pastebin.com/xGa9VLDY

问题:
我正在制作一个小计算器应用程序来磨练我的 JavaScript 技能,结果还不错。然而,我遇到的问题是 JavaScript 将我的变量“内存”返回为 0,即使值增加(或减少),我似乎无法弄清楚如何,所以计算器几乎没用,因为等于按钮只返回 0。我尝试使用 Chrome 中的控制台来增加值,只是为了测试,这是我的结果:

memory + 5
5

但是当我再次尝试检查“内存”的值时:

memory
0

这是我遗漏了什么,还是只是一个愚蠢的小错误?

我尝试过的:
如您所见,我现在已尝试将值存储在 localStorage 中,但无济于事,而且我不知道还能做什么。我最近从

memory += textBox.value;

memory = memory + textBox.value;

但显然,这也不起作用。

编辑:

我现在遇到一个很奇怪的问题:

memory: 0
textBox.value: "6"
parseInt(textBox.value): 6
memory + parseInt(textBox.value): 6
typeof(memory): "number"

这是当文本框仍然填充数字时的所有值,这是按下加号后的值:

memory: NaN
textBox.value: ""
parseInt(textBox.value): NaN
memory + parseInt(textBox.value): NaN
typeof(memory): "number"

最佳答案

控制台为您提供数学运算的结果,而不是将其存储在任何地方。

因此,您从包含值 0memory 开始。要得到 5,您需要加 5,然后将结果存储回内存

memory = memory + 5;

有一个简写:

memory += 5;

还有一个仅加 1 的简写(因为这是一项非常常见的任务):

++memory;

虽然this is not considered best practise .

关于 textBox.value 版本,您在这里执行此操作时,textBox 的 value 属性是一个字符串,而不是一个数值。尽管 1234 看起来像一个数字,但它实际上是字符“1”、“2”、“3”和“4”。您可以愉快地包含“a”或“z”。要获得可以在数学表达式中使用的数值,您需要解析字符串:

要么

enteredValueInt = parseInt(textBox.value); // or
enteredValueFloat = parseFloat(textBox.value);

取决于您希望 textBox 中包含整数还是浮点值。

此处演示:http://jsbin.com/yijezifowu/1/edit?html,js,output

编辑:关于“非常奇怪的问题”:

您在 pastebin 代码中的 mathStuff 函数顶部对 emptyBox 进行了虚假调用:

function mathStuff(operator) {
emptyBox();
//... stuff with operators
}

因此,您首先要在尝试检索数字之前清除文本框。

关于JavaScript 返回 'memory' 作为 0,即使我增加或减少它的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29074200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com