算数运算符
一般四则运算
console.log(1 + 2); // 3
console.log(6 - 1); // 5
console.log(2 * 3); // 6
console.log(9 / 3); // 3
取模运算(余数)
console.log(4 % 2); // 0
console.log(5 % 3); // 2
console.log(3 % 5); // 3
浮点数在算数运算里会出现一些问题
console.log(0.1 + 0.2); // 0.30000000000000004
console.log(0.07 * 100); // 7.000000000000001
因此,不要直接把两个浮点数拿来进行比较
var num = 0.1 + 0.2;
console.log(num == 0.3); // false
自加运算符与比较运算符
前置自增/自减
var num = 10;
++num;
console.log(num); // 11
后置自增/自减
var num = 10;
num++;
console.log(num); // 11
区别在于,后置自增会先返回原值,然后自加1:
var age = 10;
console.log(age++ + 10); // 20
console.log(age); // 11
比较运算符有两种形式:
一般模式会两比较值进行转型
// 判断号(转型)
console.log(18 == '18'); // true
console.log(18 != 18); // false
而严格模式下,则会判断两值的数据类型是否相同,然后再进行比较
// 严格模式
console.log(18 === '18'); // false
console.log(18 === 18); // true
运算符优先级
运算符优先级.PNG逻辑中断
也叫短路运算,当有多个表达式(值)时,左边的表达式可以确定结果时,就不会再运算右边的表达式的值
// 短路运算(逻辑中断)
// 逻辑与短路运算: 如果表达式1结果为真,则返回表达式2;
// 如果表达式1结果为假,则返回表达式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 这些都为假
// 逻辑或短路运算: 如果表达式1结果为真,则返回表达式1;
// 如果表达式1结果为假,则返回表达式2;
console.log(123 || 456); // 123
console.log(123 || 456 || 456 + 1); // 123
console.log(0 || 456 || 456 + 1); // 456
//逻辑中断会影响运算结果
var num = 10;
console.log(123 || num++); // 123 , num++跳过执行
console.log(num); // 10
网友评论