JavaScript算术运算符中前缀增,后缀增,前缀增是先加一后运算,后缀增是是先运算后加一。那120++ 和++120结果不应该是121?请各位解惑

huahuashuo_ 2021-04-24 09:29:37
...全文
179 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
文盲老顾 2021-04-25
  • 打赏
  • 举报
回复
++变量,先自加,变量再参与计算,变量++,变量先参与计算,再自加
泡泡鱼_ 2021-04-24
  • 打赏
  • 举报
回复

let a = 120

// a=a+1=121
++a

// a=a+1=122
a++

// a=122
console.log(a)

// b=a+1=123;a=a+1=123
const b = ++a

// c=a,a=a+1=124
const c = a++

// 124,123,123
console.log(a, b, c)
huahuashuo_ 2021-04-24
  • 打赏
  • 举报
回复
引用 2 楼 FnaticE的回复:
首先呢,自增/自减只能应用于变量。将其应用于数值(比如 120++)则会报错。 其次呢,自增运算符++,放在变量前或者变量后,意义都是一样的。
let counter=120;
counter++;
或者
++counter;
counter; //121
那么它们有区别吗?有,但只有当我们使用 ++/-- 的返回值时才能看到区别。具体来说,就是这个counter返回给另外一个变量,这时候就能体现差别: ++前置形式返回一个新的值,但++后置返回原来的值:
let counter=120;
let a=++counter; //++前置
a; //121
let counter=120;
let a=counter++; //++后置
a; //120
谢谢 明白了
huahuashuo_ 2021-04-24
  • 打赏
  • 举报
回复
引用 1 楼 泡泡鱼_的回复:

let a = 120

// a=a+1=121
++a

// a=a+1=122
a++

// a=122
console.log(a)

// b=a+1=123;a=a+1=123
const b = ++a

// c=a,a=a+1=124
const c = a++

// 124,123,123
console.log(a, b, c)
谢谢 明白了
FnaticE 2021-04-24
  • 打赏
  • 举报
回复
首先呢,自增/自减只能应用于变量。将其应用于数值(比如 120++)则会报错。 其次呢,自增运算符++,放在变量前或者变量后,意义都是一样的。
let counter=120;
counter++;
或者
++counter;
counter; //121
那么它们有区别吗?有,但只有当我们使用 ++/-- 的返回值时才能看到区别。具体来说,就是这个counter返回给另外一个变量,这时候就能体现差别: ++前置形式返回一个新的值,但++后置返回原来的值:
let counter=120;
let a=++counter; //++前置
a; //121
let counter=120;
let a=counter++; //++后置
a; //120

87,994

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧