年轻程序员常遇 Bug i=i++

132 阅读1分钟

前几天工作中,一同事遇到 一个Bug,我看了一下,发现原因在于他写了这么一行代码

this.q.pagenum = this.q.pagenum-- || 1

这看似一个简单的基础问题,但往往越是简单,越容易被人忽略,问题就在于他用了

i = i--

这是不对的,i=i-- 是取不到i减后的值的,无论执行多少次都一样,相信大家都知道

i++ 与 ++i 的区别,这里把代码 修改为

his.q.pagenum = --this.q.pagenum || 1

就好了,大家可以把 i=i++ 看成 js 和 java 的一个解释漏洞, 这个漏洞在C语言里面没有,

仅在 js 和 java 中有,大家在写 js 和 java 代码时候,一定要谨慎。