运算符
运算符,用于连接表达式的操作数,并对操作数执行运算
例如: 表达式num1+num2,操作数指的是num1和num2,运算符指的是”+”
常见的运算符有以下几类:
算术运算符、比较运算符、逻辑运算符、赋值运算符、三目运算符、位运算符
1. 算术运算符
+ - * / 普通的四则运算符
|
% 取余
1. 偶数对2取余,余数为0(整除)
2. 3%7 = 3 商为0,余数为本身
|
自增自减运算符
++ 自增,变量的值自动加1
--自减,变量的值自动-1
口诀:
符号在前,先变化(自增/自减),再使用(赋值)
符号在后,先使用(赋值),再变化(自增/自减)
|
2. 比较运算符
> = <= > < == === != !==
== 等于,比较两个值是否相同
=== 全等于,不仅比较两个值是否相同,还会比较类型是否相同
!= 不等于,比较两个值是否不相同
!== 不全等于,比较两个值不相同或者类型不相同
|
(1) 数字和字符串比较,字符串转为数字
如:console.log(3>'10')//false
|
(2) 字符串之间比较,比较的是字符的编码
如:console.log('3'>'10')//true
|
(3) NaN和任何值比较(> < >= <= == ===)结果都是false
console.log(3>'10a')//false
console.log(3<'10a')//false
console.log(3=='10a')//false
console.log(NaN==NaN)//false
|
3. 逻辑运算符
&& 逻辑与,关联的两个条件结果都是true,最终结果才是true,否则为false
| | 逻辑或,关联的两个条件只要有一个是true,最终结果就是true,否则为false
|
短路逻辑:
&& 当第一个条件的结果为false,最终结果就是false,不再执行第二个条件
| | 当第一个条件的结果为true,最终结果就是true,不再执行第二个条件
请问:下列程序运行是否会报错 var n = 5 //n>3 && a //前面为true,没有短路,会执行后面的内容,a没定义,报错 n<8 || a //不报错,前面为true,短路,不会执行后面的代码
|
! 逻辑非,取反 !true->false !false->true
|
4. 赋值运算符
= 赋值 等号右边给左边
+= -= *= /= ....
运算赋值:
先执行运算,再执行赋值 如:a -= 5 就等价于 a=a-5
|
5. 三目(元)运算符
一目运算符: 由一个运算符连接了一个操作数 ++ -- !
二目运算符: 由一个运算符连接了两个操作数 + - * / % && || >
三目运算符: 由一个运算符连接了三个操作数
|
条件表达式 ? 表达式1 : 表达式2
当条件表达式的结果为true,执行表达式1
当条件表达式的结果为false,执行表达式2
口诀: 1 ? 2 : 3 1真取2,1假取3
|