Javascript:数学运算方法
在这个代码上,第一个警告框显示了Javascript:数学运算方法,javascript,Javascript,在这个代码上,第一个警告框显示了-3,我正在考虑这个问题。这怎么可能呢?至于我对这方面的了解,是不是应该提醒-2,我对此缺乏了解?请 var x = 6; var y=8; alert(x++-++y); alert(x);alert(y); 所以6-9=-3 根据: 如果使用后缀,在操作数后加运算符(例如,x++),则返回递增前的值 如果在操作数之前使用带运算符的前缀(例如,++x),则它将在递增后返回值 语句x++和语句++x之间存在差异。前者将返回x的原始值,而后者将返回x的新值 因
-3
,我正在考虑这个问题。这怎么可能呢?至于我对这方面的了解,是不是应该提醒-2
,我对此缺乏了解?请
var x = 6; var y=8;
alert(x++-++y);
alert(x);alert(y);
所以6-9=-3
根据:
- 如果使用后缀,在操作数后加运算符(例如,x++),则返回递增前的值
- 如果在操作数之前使用带运算符的前缀(例如,++x),则它将在递增后返回值
语句
x++
和语句++x
之间存在差异。前者将返回x的原始值,而后者将返回x的新值
因此,计算结果为6(x的起始值)减去9(y的新值)。前导++
将在操作后的值上加1,而尾随++
将在操作前应用它。因此6-9=-3
x++返回递增之前的值,6
++y返回递增后的值,9
6-9=-3+
一元运算符—C、B、PL/I的遗留运算符—既可以用作增量前运算符,也可以用作增量后运算符。如果将其放在l值(变量引用)之后,则表达式的值是变量递增之前的值。表达式的副作用是增加变量的值并将其存储回去
因此:
x++
的值是6
,因为这是递增之前x
的值
++y
的值为9
,因为++
运算符用于预递增变量y
6-9
是-3
许多计算机指令集体系结构包括用于机器寄存器和/或内存位置的增量前和增量后寻址模式,以便于执行各种任务,特别是从内存区域加载值并递增地址寄存器以准备获取下一个值的过程。我一直强烈怀疑,这些概念向上渗透到更高级的语言中,以提供类似的便利。x++直到操作完成后才更改x值,因此它是6
++y在操作之前更改该值,因此该值变为9
因此,第一个警报显示-3
第二个警报没有帮助,因为您看到的是现在更改的x(7)值,而不是6。这到底有什么令人惊讶的地方?您是否查阅过任何类型的参考资料来调查++
操作符的工作原理?
x++ => 6 // postfix
++y => 9 // prefix