1.什么是运算符?
在js里面进行运算操作的符号叫运算符。
2.运算符的分类:
算术运算符
逻辑运算符
比较运算符
赋值运算符
条件运算符
逗号运算符
3.算术运算符
符号 + - * / % ++ --
3.1) + 加号 加号具有隐形转义的功能,主要针对是字符串数据,两个++号可以将字符串数字转义成number类型
任何数据类型和字符串相加都是字符串拼接
举例:
alert(1+ +'2');
3.2)- 减号
减号具有隐形转义的功能,主要针对是字符串数据,任何数字字符串相减就会变成number类型
负负得正
举例:
alert(1--1)
3.3)* 乘号
3.4)/除号 任何数除以0都是Infinity(无限),0除任何数都是0,0除以0、undefined/null/false/汉字字母都是NaN
3.5)% 余号
大余小,正常解,小余大,取小
0余字符串,undefined,null,0,false的答案都是NaN,余其他数都是0
任何数余0都是NAN
a%b的结果,先看a是大数还是小数,在看a是正数还是负数!
举例:
-7%2
a是大数正常解,a是小数,取小,再看正负!
3.6)++ 自增
在运算过程中,符号在后先不做运算,符号在前先做运算!
后面的变量去看前面相同变量的全部!
举例:
var c = a++ + b + a;
1+ 1+ 2
-- 自减
2、比较运算符
比较运算符的基本操作过程是:
首先对操作数进行比较,
该操作数可以是数字也可以是字符串,
然后返回一个布尔值true或false。
真 假
1 0
< 4<5 true
> 4>5 false
<= 5<=5 true
=>
=>和<= 这两个符号条件满足一个即为true
= 赋值 (等号右边是值,左边是变量,右边永远赋值给左边)
== 等于(只比较双方的值,不比较类型)
=== 全等(即比较双方的值,又比较类型)
!= 不等于
!== 严格不等于(忽略)
在比较运算符里面会把布尔值看成 数字 0/1
3、赋值运算符
= a="1"
+= a+=b等价于a=a+b
-= a-=b等价于a=a-b
*= a*=b等价于a=a*b
/= a/=b等价于a=a/b
%= a%=b等价于a=a%b
这些符号既有赋值功能又有运算功能!
&= a&=b等价于a=a&b(&是逻辑与运算)
|= a|=b等价于a=a|b(|是逻辑或运算)
对于最后2个,平常不经常用,忽略掉算了
4: 逻辑运算符通常用于执行布尔运算,
它们常常和比较运算符一起使用来表示复杂比较运算,
这些运算涉及的变量通常不止一个,而且常用于if、while和for语句中。
&&
逻辑 与,
若两边表达式的值都为true,
则返回true;
任意一个值为false,
则返回false
||
逻辑 或,
只有表达式的值都为false,
才返回false,
其他情况返回true
!
逻辑非,
若表达式的值为true,
则返回false;
若表达式的值为false,
则返回true
5.条件运算符(三目运算法,三元)/条件表达式
语法: 条件 ? 表达式1 : 表达式2;
正确的情况下,返回表达式1,
错误的情况下,返回表达式2,
var a=1<2?‘正确’:‘错误’
6.优先级从高到低
()
!
* / %
+ -
< > >= <=
== !=
&&
||
= += -= *= /=
,逗号
7.特殊案例
0.1+0.2=0.30000000000000004
alert(6-(2<5)+1)
8.字符串属性 length 获取字符串的长度,字符串中的空格也算占位符
9.promt方法里面的值,是字符串类型,需要转换成数字类型
10.逻辑短路运算
当符号前为非0的数,则输出符号后的数
当符号前是0,null,undefined,false的时候,则输出符号前的数
alert(0&&1)
alert(123&&234)
alert(null&&234)