欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

js中的i++和++i的区别与联系

程序员文章站 2022-06-09 19:11:51
...

一:循环体中

let a = 1
for (let i = 0; i < 1; i++) {
    console.log(a)  // 输出1
    a++
    console.log(a)   // 输出2
}

let a = 1
for (let i = 0; i < 1; i++) {
    console.log(a)  // 输出1
    ++a
    console.log(a)  // 输出2
}

//----------------------------------------

for (let i = 0; i < 3; i++) {
    console.log(i)
}
// 0
// 1
// 2

for (let i = 0; i < 3; ++i) {
    console.log(i)
}
// 0
// 1
// 2

在循环体中,在循环体里使用的效果是一样的,都能立即对变量进行+1,而无需到下一次循环时才生效


二:赋值操作

let a = 1
let b = ++a
console.log(a)    //2
console.log(b)    //2

let a = 1
let b = a++
console.log(a)    //2
console.log(b)    //1

++在变量前面时,会先对变量进行自增,然后再将自增后的结果赋值给等号左边的变量

当++在变量后面时,会先将变量目前的值赋值给等号左边的变量,然后再进行自增


例子:

let n1 = 3;//3-1-1=1
let n2 = n1--;//3
let n3 = --n1;//1
console.log(n1,n2,n3);//1 3 1

三:多个加号:

let a = 1
let b = 0
let c = a +++ b
console.log(c)    // 输出1
console.log(a)    // 输出2
console.log(b)    // 输出0

//------------------------------

let a = 1
let b = 0
let c = a + ++ b
console.log(c)    // 输出2
console.log(a)    // 输出1
console.log(b)    // 输出1

可见,空格对+有影响

【另外】 i++不能为左值,++i可以