- 运算符:就是在代码里面进行运算的时候使用的符号,不光是数学运算符,我们在JS里面还有很多的运算方式
1、运算符-数学运算符
1、+
- 只有符号两边都是数字的时候才会进行加法运算
- 只要符号任意一边是字符串,就会进行字符串拼接
<script> var a=10 var b=true console.log(a+b) //输出结果是11 </script>
2、-
- 会执行减法运算
- 会自动把两边都转换成数字进行运算
3、*
- 会执行乘法运算
- 会自动把两边都转换成数字进行运算
<script> console.log(1+"2"*3+4) //输出结果是11 </script>
<script> console.log("1"+"2"*3+4) //输出结果是164 </script>
4、/
- 会执行除法运算
- 会自动把两边都转换成数字进行运算
5、%取余
<script> var a=10 var b=3 console.log(a%b) //输出结果是1 </script>
<script> //计算1000分钟是多少个小时,多余的分钟保留,用:分隔开 var a=1000 var b=parseInt(1000/60) var c=1000%60 console.log(b+":"+c) //输出结果16:40 </script>
2、运算符-赋值运算符
- 1、=
就是把=右边的赋值给等号左边的变量名
var num=100
就是把100赋值给num变量
那么num变量的值就是100
<script> var a=1; a=3; console.log(a) //输出结果是3 </script>
<script> //交换两个数 var m=5 var n=6 var c c=m; m=n; console.log(m,n) //m=6 n=5 </script>
- 2、+=
var a=10;
a+=10;
console.log(a);
//结果为20 a+=10等价于a=a+10
- 3、-=
var a=10;
a-=10;
console.log(a);
//结果是0 a-=10等价于a=a-10
4、*=
5、/=
6、%=
3、运算符-比较运算符
1、==
- 比较符号两边的值是否相等,不管数据类型
- 1=='1'
- 两个的值是一样的,所以得到true
<script> console.log(true==1)//true console.log(""===0)//false console.log(undefined==0)//false </script>
2、===
- 比较符号两边的值和数据类型是否都相等
- 1==='1'
- 两个值虽然一样,但是因为数据类型不一样,所以得到false
3、!=
- 比较符号两边的值是否不等
- 1!='1'
- 因为两边的值是相等的,所以比较他们不等的时候得到false
4、!==
- 比较符号两边的数据类型和值是否不等
- 1!=='1'
- 因为两边的数据类型确实不一样,所以得到true
5、>=
- 比较左边的值是否大于或等于右边的值
- 1>=1 结果是true
- 1>=0 结果是true
- 1>=2 结果是false
6、<=
- 比较左边的值是否小于或等于右边的值
- 1<=2 结果是true
- 1<=1 结果是true
- 1<=0 结果是false
7、>
- 比较左边的值大于右边的值
- 1>0 结果是true
- 1>1 结果是false
- 1>2 结果是false
8、<
- 比较左边的值小于右边的值
- 1<2 结果是true
- 1<1 结果是false
- 1<0 结果是false
4、运算符-逻辑运算符
1、&&(进行 且 的运算)
- 只要有一边不是true,那么就会返回false
- true&&true 结果是true
- true&&false 结果是false
- false&&true 结果是false
- false&&false 结果是false
2、||(进行 或 的运算)
- 符号的左边为true或者右边为true,都会返回true
- 只有两边都是false的时候才会返回false
- true||true 结果是true
- true||false 结果是true
- false||true 结果是true
- false||false 结果是false
3、!(进行 取反 运算)
- 本身是true的,会变成false
- 本身是false,会变成true
- !true 结果是false
- !false 结果是true
<script> console.log(!0)//true console.log(!null)//true console.log(!"")//true console.log(!"111")//false </script>
4、特殊情况
- (1)!!a ==>转换成布尔值
- (2)&& 和|| 短路 用法
<script> var x=null console.log(y && y.toString()) var z="111" document.write(z || "你好") </script>
5、运算符-自增自减运算符
1、++
- 进行自增运算
- 分成两种,前置++和后置++
- 前置++,会先把值自动+1,再返回
- 后置++,会先把值返回,再自动+1
<script> var a=10; console.log(++a) //会返回11,并且把a的值变成11 var b=10; console.log(b++) //会返回10,然后把a的值变成11 </script>
<script> var n=10 var res=++n + n++ + ++n console.log(n,res) //结果:13 35 </script>
2、--
- 进行自减运算
- 分成两种,前置--和后置--
- 和++运算符道理一样
<script> var m=10 var res=m++ + --m + m-- + ++m console.log(m,res) //结果:10 40 </script>
6、三目运算符
- 三元运算,也就是用两个符号组成一个语句
- 语法:条件 ? 条件为true的时候执行 : 条件为false的时候执行
<script> var age=18; age >=18 ? alert('已经成年') : alert('没有成年') //输出已经成年 </script>
<script> var age=12; age >=18 ? alert('已经成年') : alert('没有成年') //输出没有成年 </script>
<script> //满200减10 满100减5 var sum=190 var youhuisum = sum>200?sum-10:(sum>100?sum-5:sum) </script>