007. 运算符
- 就是在代码里面进行运算的时候使用的符号,不光只是数学运算,我们在
js里面还有很多的运算方式
7-1 数学运算符
-
+只有符号两边都是数字的时候才会进行加法运算
只要符号任意一边是字符串类型,就会进行字符串拼接
-
-会执行减法运算
会自动把两边都转换成数字进行运算
-
*会执行乘法运算
会自动把两边都转换成数字进行运算
-
/会执行除法运算
会自动把两边都转换成数字进行运算
-
%会执行取余运算
会自动把两边都转换成数字进行运算
// + - * / %取余
var a = 10
var b = 20 //30
console.log(a+b)
var a = 10
var b = true //11
console.log(a+b)
//取余
var a = 10
var b = 3 //1
console.log(a%b)
//时间————取整,取余
var a = 1000 //分钟
var b = parseInt(a/60) // 16小时
var c = a%60 // 40分钟
console.log(b)
console.log(b+":"+c) //16:40
console.log(1+"2"*3+4) //11
先乘法再加法
7-2 赋值运算符
-
=就是把
=右边的赋值给等号左边的变量名var num = 100就是把 100 赋值给 num 变量
那么 num 变量的值就是 100
-
+=var a = 10; a += 10; console.log(a); //=> 20a += 10等价于a = a + 10 -
-=var a = 10;
a -= 10; console.log(a); //=> 0a -= 10等价于a = a - 10 -
*=var a = 10; a *= 10; console.log(a); //=> 100a *= 10等价于a = a * 10 -
/+var a = 10; a /= 10; console.log(a); //=> 1a /= 10等价于a = a / 10 -
%=var a = 10; a %= 10; console.log(a); //=> 0a %= 10等价于a = a % 10
var a = 1
a=2
console.log(a)
//交换两个数
var m=5
var n=6
var c
c=m
m=n
n=c //6 5
//+= -= *= /= %=
var number=5
number+=1//number=number+1
console.log(number) //6
7-3 比较运算符
-
==- 比较符号两边的值是否相等,不管数据类型
1 == '1'两个的值是一样的,所以得到
true
- 比较符号两边的值是否相等,不管数据类型
-
===- 比较符号两边的值和数据类型是否都相等
1 === '1'两个值虽然一样,但是因为数据类型不一样,所以得到
false
- 比较符号两边的值和数据类型是否都相等
-
!=- 比较符号两边的值是否不等
1 != '1'因为两边的值是相等的,所以比较他们不等的时候得到
false
- 比较符号两边的值是否不等
-
!==- 比较符号两边的数据类型和值是否不等
1 !== '1'因为两边的数据类型确实不一样,所以得到
true
- 比较符号两边的数据类型和值是否不等
-
>=- 比较左边的值是否 大于或等于 右边的值
1 >= 1结果是true1 >= 0结果是true1 >= 2结果是false
- 比较左边的值是否 大于或等于 右边的值
-
<=- 比较左边的值是否 小于或等于 右边的值
1 <= 2结果是true1 <= 1结果是true1 <= 0结果是false
- 比较左边的值是否 小于或等于 右边的值
-
>- 比较左边的值是否 大于 右边的值
1 > 0结果是true1 > 1结果是false1 > 2结果是false
- 比较左边的值是否 大于 右边的值
-
<- 比较左边的值是否 小于 右边的值
1 < 2结果是true1 < 1结果是false1 < 0结果是false
- 比较左边的值是否 小于 右边的值
var sum = 200
console.log(sum>=200) //true
var age = 22
console.log(age==22) //true
var age = "22"
console.log(age===22) //false
console.log(parseInt(age)===22) //true
console.log(true==1) //true
console.log(true===1) //false
console.log(""==0) //true
console.log(""===0) //false
console.log(undefined==0) //false
console.log(undefined===0) //false
var x = 6
console.log(x!=6) //false
var x = "6"
console.log(x!=6) //false
console.log(x!==6) //true
console.log(parseInt(x)!==6) //转成纯数值再对比 false
7-4 逻辑运算符
-
&&- 进行 且 的运算
符号左边必须为
true并且右边也是true,才会返回true只要有一边不是
true,那么就会返回falsetrue && true结果是truetrue && false结果是falsefalse && true结果是falsefalse && false结果是false
- 进行 且 的运算
-
||- 进行 或 的运算
符号的左边为
true或者右边为true,都会返回true只有两边都是
false的时候才会返回falsetrue || true结果是truetrue || false结果是truefalse || true结果是truefalse || false结果是false
- 进行 或 的运算
-
!- 进行 取反 运算
本身是
true的,会变成false本身是
false的,会变成true!true结果是false!false结果是true
- 进行 取反 运算
// &&且
var a = true
var b = true
console.log(a && b) //true
var category ="衣服" //选择的当前商品的类别
var price =300 //总金额
console.log(category==="家电"&& price>200) //false
// ||或
var day = 5
var b = true
console.log( day === 6 || day === 7) //false
// !取反
var c = true
console.log(!c) //false
var length = 0
console.log(length = 0) //0
console.log(!length) //true
console.log(!"111") //false
/*
1. !!a ==>转换成布尔值
2. && || 短路 用发
*/
var y = 1000
console.log(y && y.toString()) //1000
//短路用法,不会出现莫名报错
var z = ""
//console.log(z || "这个家伙很懒,什么也没有留下")
document.write(z || "这个家伙很懒,什么也没有留下")
//向页面中输出这个家伙很懒,什么也没有留下
var z = "赵钱孙李"
document.write(z || "这个家伙很懒,什么也没有留下")
//向页面中输出赵钱孙李
7-5 自增自减运算符
-
++-
进行自增运算
-
分成两种,前置++ 和 后置++
-
前置++,会先把值自动 +1,再返回
var a = 10; console.log(++a); // 会返回 11,并且把 a 的值变成 11 -
后置++,会先把值返回,再自动+1
var a = 10; console.log(a++); // 会返回 10,然后把 a 的值变成 11
-
var n = 10;
var res =++n + n++ + ++n
// 11 11 13
console.log(n,res); //13 35
-
--- 进行自减运算
- 分成两种,前置-- 和 后置--
- 和
++运算符道理一样
var m = 10;
var res = m++ + --m + m-- + ++m
// 10 10 10 10
console.log(n,res); //10 40
7-6. 三元运算符(三目运算符)
-
三元运算,就是用 两个符号 组成一个语句
-
语法:
条件 ? 条件为 true 的时候执行 : 条件为 false 的时候执行
10<20?console.log(111):console.log(222)
//满200 减10
var sum = 210
var youhuisum = sum>200? sum-10 : sum
console.log(sum,youhuisum)//210 200
//满200 减10 满100 减5
var sum = 190
var youhuisum = sum>200? sum-10 : (sum>100?sum-5:sum)
console.log(sum,youhuisum)//190 185