javascript - 为什么在下面的语句中变量名后面的速记算术运算符++不返回2?

标签 javascript

我有一个非常简单的算术运算符,但我不知道为什么它不返回 2。下面的代码返回 1。我认为 x++ 等于 x = x + 1;

代码

var x = 1;
document.write(x++);

但是,如果我按如下方式运行代码,它会按预期返回 2

代码

var x = 1;
document.write(++x);

我做错了什么?

最佳答案

PostIncrement(变量++) & PostDecrement(变量--)

当您在变量后使用 ++-- 运算符时,变量的值不会递增/递减,直到表达式被求值并且原始值是回来。例如 x++ 转换为类似于以下的内容:

document.write(x);
x += 1;

预递增(++变量) & 预递减(--变量)

当您在变量之前使用 ++-- 运算符时,变量的值在计算表达式并返回新值之前递增/递减.例如 ++x 转换为类似于以下内容:

x += 1;
document.write(x);

后增量和预增量运算符在 C、C++、C#、Java、javascript、php 中可用,我相信还有其他语言。根据why-doesnt-ruby-support-i-or-i-increment-decrement-operators , Ruby 没有这些运算符。

关于javascript - 为什么在下面的语句中变量名后面的速记算术运算符++不返回2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11218299/

相关文章:

javascript - 客户端的安全问题(Javascript)

javascript - 使用来自延迟的 JSON 请求的方法和类创建 Javascript 对象

javascript - 如何使用 NodeJS 发送带有文件名和文件扩展名的文件流

javascript - 即使在 Node.js 中的回调函数之后,函数也会异步运行

javascript - Angular 服务返回未定义

javascript - 我如何确定 DOM 元素的 XPath?

javascript - html,js :populate form fields with values from arraylist and save back this arraylist in servlet

javascript - 我如何向其中添加选择器更改事件?

javascript - 将图像上传到未定义的 Node.js image'

javascript - 如何使当前时间出现在警告框中