一.+(加法)梦湘,-(減法)瞎颗,*(乘法),/(除法)捌议,%(取模/取余):
let a=10,
b=20;
alert(a+b);//輸出的結(jié)果是30
let x=0.1,
y=0.2;
alert(a+b);//輸出的結(jié)果是3000000004哼拔;因?yàn)樗麄兪且远M(jìn)制的形式進(jìn)行計(jì)算的,所以會出現(xiàn)這種結(jié)果瓣颅,要想嚴(yán)格的話管挟,可以給他們變成整數(shù)進(jìn)行相加,然后在除以相應(yīng)的倍數(shù)就行了
減法和乘除也是一樣的弄捕,這里就不一一演示了
%(取模)這里并不是百分比的意思僻孝,是取余的意思
alert(10%3)//這里彈出的結(jié)果是1
alert(10.5%3)//這里的結(jié)果是1.5导帝,如果有小數(shù)的話,小數(shù)是不參與計(jì)算的穿铆。
二.隱式類型轉(zhuǎn)換
1.加法的隱式轉(zhuǎn)換
let a="10",
b=20;
alert(a+b)//這里的結(jié)果是1020的字符串您单,在運(yùn)算的時(shí)候被同化了
alert("123"+true)//得出的結(jié)果是"123true"
alert(true+8);//結(jié)果是9
alert([]+[])//結(jié)果是啥都沒有,沒有意義的
alert(1+2+"8");//結(jié)果是38荞雏,這里也是根據(jù)算數(shù)運(yùn)算的規(guī)律來運(yùn)算的虐秦。
alert("8"+1+2);//結(jié)果是812,這是812字符串
得出的結(jié)論就是:1.如果兩個(gè)數(shù)相加凤优,加號兩邊任意一遍有字符串悦陋,那么都會進(jìn)行隱式的轉(zhuǎn)換在進(jìn)行拼接。2.布爾值和數(shù)字進(jìn)行相加筑辨,會轉(zhuǎn)換成1 0
2.減法的隱式轉(zhuǎn)換
let a=30,
b=20;
alert(a-b);//結(jié)果是10俺驶;
alert("50p"-10);//結(jié)果是Nan
得出的結(jié)論是兩個(gè)數(shù)相減,減號兩邊任意一邊有數(shù)字棍辕,那么都會進(jìn)行隱式轉(zhuǎn)換成數(shù)字在相減暮现,乘法和除法還有模也是相同的。如果出現(xiàn)不合理的運(yùn)算的時(shí)候會出現(xiàn)Nan(不是一個(gè)數(shù)字)楚昭。Nan是數(shù)據(jù)類型是Number栖袋。
三.自增自減
let a=10;
a++;
alert(a);//結(jié)果是11
let b=a++;//運(yùn)算過程是:b=a;a=a+1;
let b=++a;//運(yùn)算過程是:a=a+1;b=a;
++a;
alert(a);//結(jié)果也是11
得出的結(jié)論就是雖然結(jié)果一樣,但是過程不一樣抚太。a++是表達(dá)式的值塘幅,++a是自曾1之后的值。
let a=10;
let b=5;
alert(a+b);//結(jié)果是15尿贫;
alert(a++b);//結(jié)果是出錯(cuò)电媳,電腦的解析過程是(a++)b;這樣就不合理了。
alert(a+++b);//結(jié)果是15帅霜,電腦的解析過程是(a++)+b,也就是10+5。
alert(a++++b);//結(jié)果是出錯(cuò)呼伸,電腦的解析過程是(a++)(++b);這樣也不合理身冀。
alert(a+++(+b));//結(jié)果是15,電腦的解析過程是(a++)+(+b);也就是10+5括享。
alert(a+++++b);//結(jié)果是16搂根,電腦的解析過程是(a++)+(++b);也就是10+6。
注意:自減的運(yùn)算方式和自增是一樣的铃辖。
let a="5";
a++;
alert(a);//結(jié)果是6剩愧;