Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript中的x=x+5不是死锁吗?_Javascript_Variables - Fatal编程技术网

Javascript中的x=x+5不是死锁吗?

Javascript中的x=x+5不是死锁吗?,javascript,variables,Javascript,Variables,我在W3学校学习Javascript,我在作业操作符=部分 它说Javascript中的x=x+5非常合理,但我不明白如何 假设我们给x赋值为5,那么上面的方程是5=10 它还说,在JavaScript中,equal to操作符的编写方式类似于==,但下面的函数给出了正确答案,没有11== <script> var price1 = 5; var price2 = 6; var total = price1 + price2; document.getElementById("dem

我在W3学校学习Javascript,我在作业操作符=部分

它说Javascript中的x=x+5非常合理,但我不明白如何

假设我们给x赋值为5,那么上面的方程是5=10

它还说,在JavaScript中,equal to操作符的编写方式类似于==,但下面的函数给出了正确答案,没有11==

<script>
var price1 = 5;
var price2 = 6;
var total = price1 + price2;
document.getElementById("demo").innerHTML =
"The total is: " + total;
</script>
这让我心烦意乱。你们能帮帮我吗?在我把所有的基本问题都弄清楚之前,我不想再继续下去了


非常感谢。

你的思维过程不对

当你这样做的时候

x = x + 5
然后,首先计算x+5

之后,该值被指定给左侧变量。所以在左手边,它是x还是其他东西并不重要

这与,

p = x + 5
x = p

这种情况不适用于Javascript,但几乎适用于所有语言

如果您阅读了有关的文档,您可以在表中看到+13加法将在=3-赋值之前进行评估


因此,它将首先计算x+5,即10,然后在JavaScript和许多其他编程语言中,将10赋值给x。表达式中的=运算符与等式无关,而是赋值

所以

将计算x+5的结果分配给x。运算符的优先级确保首先执行加法,因此这是可行的

编程虽然有数学根源,但1不是关于方程,而是根据语言的特定规则计算的表达式

1这适用于命令式语言;编程的另一个分支是函数式的,它的内容更接近数学,但JavaScript属于前者。2


2当然,一种方法和另一种方法都有大量的借用,这会混淆问题。

评估顺序。这不是数学,而是编程。您必须了解命令执行的顺序。W3Schools并不是一个很好的资源,它是一个变量的赋值,我喜欢你的想法:很多人投了反对票,一个人投了反对票。但这是一个有效的初学者问题:许多教程未能解释导致这种混淆的基本原理,其中来自人类努力的一个领域的符号在另一个领域具有不同的含义。感谢您以如此清晰的方式解释,先生。我想,为了缓解这种混淆,有些语言使用了不同的运算符,例如:=.@阿尔瓦罗冈萨雷斯:是的。因此,像JavaScript这样的C族语言使用==表示相等。当然,JS是动态的,因此也需要严格的相等性。
x = x + 5;