JAVA基础(五)------ 运算符(优先级、三目运算符、位运算符、=和==)
1、运算优先级
单目运算符优先级较高,赋值运算符优先级较低。
算术运算符优先级较高,关系和逻辑运算符优先级较低。
多数运算符具有左结合性,单目运算符、三目运算符、赋值运算符具有右结合性。
(其中 1 级最高,14 级最低)
使用优先级为 1 的小括号可以改变其他运算符的优先级
2、三目运算
实际开发中注意两点就可以了:
(1)三目运算符属于逻辑运算符,可以替代简单的if语句,使得代码变得简洁;
(2)三目运算也支持嵌套,但同样也不推荐过多的嵌套,会使代码可读性降低
3、位运算符
左移几位其实就是该数据乘以2的几次幂:
3<<3 = 24
计算过程:3*2*2*2=24
右移几位其实就是该数据除以2的几次幂,若为小数,取整即可:
-6>>2 = - 6 / (2^2) = -1
4、=和==
==是关系运算符,所有关系运算符的结果都是布尔类型,只有true和false;
这两个容易在写if条件的时候写错,
== 内容相等
= 赋值
5、“===”和“==” 的区别
1、===:称为等同符,当两边值的类型相同时,直接比较值,若类型不相同,直接返回false;
2、==:称为等值符,当等号两边的类型相同时,直接比较值是否相等,若不相同,则先转化为类型相同的值,再进行比较;
类型转换规则:
- 1)如果等号两边是boolean、string、number三者中任意两者进行比较时,优先转换为数字进行比较。
- 2)如果等号两边出现了null或undefined,null和undefined除了和自己相等,就彼此相等
注意:NaN==NaN //返回false,NaN和所有值包括自己都不相等。