js 关于++计算

var a = 1;
a = a++;
console.log(a); // 1

为什么a是1,我想的应该是2才对

阅读 2.2k
4 个回答

这是个老问题

var a = 1;
 //a = a++; // 这行代码等价与下面的
 let t = a++; // 这个时候t = 1; a=2;
 a = t; // 这个时候 a 又重新赋值回来了 1

主要是因为 a++这条指令表示在这条运算完后(赋值后)才会自增1(才运行++操作)。
所以 a++的时候还是1。你又赋值给了a所以等于 a = 1 这样的操作;

你需要写 ++a

var a = 1;
a = ++a;
console.log(a); // 1

++ x 预递增 x 加 1,然后返回 x
x ++ 后递增 返回 x,然后 x 加 1

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题