算术运算符
算术运算符遵循先乘除后加减的原则
浮点数 算数运算里面会有问题,要尽力避免
不能直接判断两个浮点数相等,因为精度会有问题
表达式
由数字,运算符,变量等组成的式子,称为表达式
任何一个表达式都会有一个返回值
//前置自增和后置自增如果单独使用,效果是一样的
后置自增:先返回原值,后自加一
var age=10;
console.log(age++ +10);//返回值20
console.log(age); //返回值11
console.log(age++ ++age);//返回值22
比较符
'==' :判断相等,会默认转换数据类型
!== :不等号
=== :全等号,要求值和数据类型都一致(一模一样)
逻辑运算符
短路运算(逻辑中断) :当有多个表达式(值)时,左边的表达式可以确定结果时,就不再继续运算右边的表达式的值
逻辑与短路运算:
语法1 && 语法2
如果第一个表达式值为真,则返回表达式2
如果第一个表达式值为假,则返回表达式1(0或空为假)
console.log(123 && 456); //返回值456
console.log(0 && 456); //返回值0 (数字里面除了0以外全为真)
console.log(0 && 1+2 && 123*456); //返回0 (逻辑中断)
逻辑或短路运算:
语法1 || 语法2
如果第一个表达式值为真,则返回表达式1
如果第一个表达式值为假,则返回表达式2
console.log(123 || 456); //返回值123
console.log(0 || 456); //返回值456 (数字里面除了0以外全为真)
console.log(0 || 1+2 || 123*456); //返回3 (逻辑中断)
var num = 0;
console.log(123 || num++); //123
console.log(num); //0
运算符优先级
优先级 1:小括号 : ()
优先级 2:一元运算符: ++ – !
优先级 3:算术运算符: 先* / % 后 + -
优先级 4:关系运算符: > >= < <=
优先级 5:相等运算符: == !== === !==
优先级 6:逻辑运算符:先 && 后 ||
优先级 7:赋值运算符:=
优先级 8:逗号运算符:,