剛學(xué)習(xí)前端的同學(xué)头岔,在學(xué)到++運(yùn)算符的時(shí)候形帮,都是一臉的懵
var k = 10;
console.log(k++ + ++k + k++) //34
var i = 10;
console.log(++i + i++ + ++i) //35
console.log(i++ + ++i + i++) //43
way???為什么吧寺?為什么梗逮?為什么隅津?
下面我們一步一步的來(lái)看:
1诬垂、 var i = 10;
2 、i++; //等價(jià)于i=i+1
3 伦仍、console.log(i); //11
++可以與輸出語(yǔ)句寫(xiě)在一起结窘,++寫(xiě)在變量前和寫(xiě)在變量后不是一個(gè)意思
i++ : 先用a的原值,然后i加1充蓝;
++i :先給a加1隧枫,然后用i的新值
1、 var i = 10;
2 谓苟、console.log(i++); //10 官脓,先引用原值,然后加1
等價(jià)于:
1 娜谊、 var i= 10;
2确买、 console.log(i); //先輸出i
3、 i++; //然后f加i
區(qū)別于:
1纱皆、 var i = 10;
2湾趾、 console.log(++i); //11 , 這次是先加1派草,然后輸出
++有點(diǎn)意思的玩法:
1 var i = 8;
2 console.log(4 + i++); //12 搀缠, 先使用原來(lái)的a的值,就是4+8近迁,輸出12.然后a加1
3 console.log(i); //9
4 console.log(++i % 5); //0 , 先把i加1艺普,然后使用i,10%5=0
5 console.log(i); //10
1 var a = 1; //a的值1
2 var b = a++; //b的值是1,a的值是2 歧譬。++寫(xiě)在后面岸浑,是先用再加
3 a += ++b; //先把b加1,b就是2了瑰步,a原來(lái)是2矢洲,加上2,就是4
4 console.log(a); //4
console.log(b); //2
1 var a = 3; //a的值是3
2 console.log(a++ + a++); //計(jì)算從左到右的缩焦,所以第一次a++時(shí)用的是3读虏,a變?yōu)?。
3 //第二次遇見(jiàn)a++的時(shí)候袁滥,a用的是4盖桥,變?yōu)?
4 //3 + 4 所以輸出7
console.log(a); //輸出5
1 var a = 3;
2 console.log(a++ + ++a); //8
console.log(a); //5
總結(jié):
其實(shí)++運(yùn)算符非常的簡(jiǎn)單,只要你記住一句口訣:++在前下自加后運(yùn)算题翻;++在后先運(yùn)算后自加揩徊;然后在細(xì)心點(diǎn)就好了;