算數(shù)運(yùn)算符
一般四則運(yùn)算
console.log(1 + 2); // 3
console.log(6 - 1); // 5
console.log(2 * 3); // 6
console.log(9 / 3); // 3
取模運(yùn)算(余數(shù))
console.log(4 % 2); // 0
console.log(5 % 3); // 2
console.log(3 % 5); // 3
浮點(diǎn)數(shù)在算數(shù)運(yùn)算里會(huì)出現(xiàn)一些問(wèn)題
console.log(0.1 + 0.2); // 0.30000000000000004
console.log(0.07 * 100); // 7.000000000000001
因此,不要直接把兩個(gè)浮點(diǎn)數(shù)拿來(lái)進(jìn)行比較
var num = 0.1 + 0.2;
console.log(num == 0.3); // false
自加運(yùn)算符與比較運(yùn)算符
前置自增/自減
var num = 10;
++num;
console.log(num); // 11
后置自增/自減
var num = 10;
num++;
console.log(num); // 11
區(qū)別在于,后置自增會(huì)先返回原值玄糟,然后自加1:
var age = 10;
console.log(age++ + 10); // 20
console.log(age); // 11
比較運(yùn)算符有兩種形式:
一般模式會(huì)兩比較值進(jìn)行轉(zhuǎn)型
// 判斷號(hào)(轉(zhuǎn)型)
console.log(18 == '18'); // true
console.log(18 != 18); // false
而嚴(yán)格模式下她奥,則會(huì)判斷兩值的數(shù)據(jù)類(lèi)型是否相同讯泣,然后再進(jìn)行比較
// 嚴(yán)格模式
console.log(18 === '18'); // false
console.log(18 === 18); // true
運(yùn)算符優(yōu)先級(jí)
邏輯中斷
也叫短路運(yùn)算阵漏,當(dāng)有多個(gè)表達(dá)式(值)時(shí)预侯,左邊的表達(dá)式可以確定結(jié)果時(shí)木羹,就不會(huì)再運(yùn)算右邊的表達(dá)式的值
// 短路運(yùn)算(邏輯中斷)
// 邏輯與短路運(yùn)算: 如果表達(dá)式1結(jié)果為真甲雅,則返回表達(dá)式2;
// 如果表達(dá)式1結(jié)果為假坑填,則返回表達(dá)式1抛人;
console.log(123 && 456); // 456
console.log(0 && 456); //0
console.log(0 && 123 && 456 + 1); // 0
console.log('' && 123 && 456 + 1); // ''
// 0 '' null undefined NaN 這些都為假
// 邏輯或短路運(yùn)算: 如果表達(dá)式1結(jié)果為真,則返回表達(dá)式1脐瑰;
// 如果表達(dá)式1結(jié)果為假妖枚,則返回表達(dá)式2;
console.log(123 || 456); // 123
console.log(123 || 456 || 456 + 1); // 123
console.log(0 || 456 || 456 + 1); // 456
//邏輯中斷會(huì)影響運(yùn)算結(jié)果
var num = 10;
console.log(123 || num++); // 123 , num++跳過(guò)執(zhí)行
console.log(num); // 10