一.算术运算符
- 算术运算符用在数学表达式中, 它的使用方式和数学中也是一致的.
- 算术运算符是对数据进行计算的符号
- 可以直接对数据进行操作, 也可以操作变量指向的数据.
运算符 | 运算规则 | 范例 | 结果 |
---|---|---|---|
+ | 正号 | +3, 和直接写3一样 | 3 |
+ | 加法 | 2 + 3 | 5 |
+ | 连接字符串 | ‘中’+ ‘国’ | ‘中国’ |
- | 减法 | 2 - 3 | -1 |
* | 乘法 | 2 * 3 | 6 |
/ | 除法 | 5 / 2 | 2.5 |
% | 取余数 | 5 % 2 | 1 |
++ | 自增 | 3++或++3 | 4 |
-- | 自减 | 3--或--3 | 2 |
二.前置后置运算符
- JavaScript支持:自增++和自减--,通常都是用在数字变量上
- 自增:++
- 分为前置自增和后置自增
- 自减:--
- 分为前置自减和后置自减
- ++,--:在前,先自增(自减),再参与运算
- ++,--:在后,先运算,在自增(自减)
三.赋值运算符
- 赋值运算符主要是给某个变量进行赋值
- 赋值运算符是算术运算符和赋值的一种简便写法.
- 比如 a = 3; a = a + 1;
- 第二句可以写成 a += 1;
运算符 | 运算规则 | 范例 | |
---|---|---|---|
= | 赋值 | a = 5 | 5 |
+= | 加后赋值 | a = 5, a += 2 | 7 |
-= | 减后赋值 | a = 5, a -= 2 | 3 |
*= | 乘后赋值 | a = 5; a *= 2 | 10 |
/= | 除后赋值 | a = 5; a /= 2 | 2.5 |
%= | 取余后赋值 | a = 5; a %= 2 | 1 |
四.比较运算符(比较运算符)
- 比较运算符,又叫关系运算符
- 它是用来判断两个操作数的大小关系及是否相等关系的
- 结果是布尔类型(bool): True或者False
- 比较运算符经常用在后面学习的if/while语句中
- 学习if语句的使用
- ==关系运算符的结果为布尔值==
运算符 | 运算规则 | 范例 | 结果 |
---|---|---|---|
== | 相等 | 4 == 3 | false |
!= | 不等于 | 4 != 3 | true |
大于 | 4 > 3 | true | |
< | 小于 | 4 < 3 | false |
>= | 大于等于 | 4 >=3 | true |
<= | 小于等于 | 4 <= 3 | false |
4.1 相等
一.关系运算符:> < >= <= != == = == !==
1.关系运算符的结果是布尔值
2.对于数值类型:关系运算符直接运算,返回结果
对于非数值类型:自动转换为数值类型,再进行运算
2.1 如果比较运算符两边都是非数值情况,则不会转换为数值,而是比较字符串的字符unicode编码
二.相等运算符
1.比较数值型时,返回正常的true或false
2.比较一个为数值型,一个为非数值型时,会把非数值型的转换为数值型,再进行运算
3.两个非字符型的比较,会先转换为数值型,再比较
4.undefined衍生自null,所有两个值比较为true
5.NaN不喝任何值相等包括它自己
判断变量是否为NaN的方法isNaN();
相等操作符对于不同类型的值,进行的比较如下图所示:
4.2 全等
**全等操作符比较两个值是否相等,两个被比较的值在比较前都不进行隐式转换。**如果两个被比较的值具有不同的类型,这两个值是不全等的。否则,如果两个被比较的值类型相同,值也相同,并且都不是 number 类型时,两个值全等。最后,如果两个值都是 number 类型,当两个都不是 NaN,并且数值相同,或是两个值分别为 +0 和 -0 时,两个值被认为是全等的。
var num = 0;
var obj = new String("0");
var str = "0";
var b = false;
console.log(num === num); // true
console.log(obj === obj); // true
console.log(str === str); // true
console.log(num === obj); // false
console.log(num === str); // false
console.log(obj === str); // false
console.log(null === undefined); // false
console.log(obj === null); // false
console.log(obj === undefined); // false
五.逻辑运算符
-
逻辑运算符,它是用于将多个条件放在一起进行运算的
-
逻辑运算符的运算结果也是Boolean类型: true/false
-
逻辑运算符也应用if/while的判断句中, 并且是多个条件时会使用到
运算符 运算规则 范例 结果 && 与: 同时为真 false && True false || 或: 一个为真 false or frue true ! 非: 取反 !false true
-
-
逻辑与补充:(了解)
- 逻辑与运算符可以应用于任何数据类型,且不一定返回布尔值。
- 对于非布尔值运算,会先将非布尔值转换为布尔值。
-
逻辑或补充:(了解)
- 逻辑或运算符可以应用于任何数据类型,且不一定返回布尔值。
- 对于非布尔值运算,会先将非布尔值转换为布尔值。
-
逻辑非 !
- 1.对布尔值进行逻辑运算,true变false,false变true
- 2.对一个值进行两次非运算,值不变
- 3.对非布尔值进行非运算,会将其先变成布尔值,再取反
- ==3.1我们可以根据这一原理,将别的类型转换为布尔型:就是对别的数据类型进行两次非操作,原理其实跟Boolean()相同==
-
逻辑与 &&
- 1.布尔类型进行与运算时:两边都是true,结果为true;只要有一个false结果就为false
- ==2.JS中的“与”属于短路与:第一个值为false,则不会看第二个值==
-
逻辑或 ||
- 1.两个值中只要有一个true,就返回true;如果两个值都为false,才返回false
- ==2.JS中的“或”属于短路或:只要第一个值为true,则不会看第二个值==
-
==非布尔值的与或运算==:非布尔值的与运算:先将非布尔值转换为布尔值,再进行运算,最后返回原值
-
==与运算==
-
如果第一个值是true,则返回第二个值
-
如果左右两边的结果有一个false,则返回前一个false的值
-
//非布尔值的逻辑与 console.log(1&&2);//2 console.log(2&&0);//0 console.log(NaN&&5);//NaN console.log(""&&6);//""
-
-
==或运算==
-
如果第一个值是true,则返回第一个值
-
如果第一个值是false,则返回第二个值
-
console.log(2||0);//2 console.log(NaN||2);//2 console.log(NaN||0);//0
-
-
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script type="text/javascript">
/*
一.JS中的三种逻辑运算符:
1.逻辑非 !
1.对布尔值进行逻辑运算,true变false,false变true
2.对一个值进行两次非运算,值不变
3.对非布尔值进行非运算,会将其先变成布尔值,再取反
3.1我们可以根据这一原理,将别的类型转换为布尔型:就是对别的数据类型进行两次非操作,原理其实跟Boolean()相同
2.逻辑与:&&
1.布尔类型进行与运算时:两边都是true,结果为true;只要有一个false结果就为false
2.JS中的“与”属于短路与:第一个值为false,则不会看第二个值
3.逻辑或:||
1.两个值中只要有一个true,就返回true;如果两个值都为false,才返回false
2.JS中的“或”属于短路或:只要第一个值为true,则不会看第二个值
二.非布尔值的与或运算
1.与运算
1.1非布尔值的与运算:先将非布尔值转换为布尔值,再进行运算,最后返回原值
1.2 如果第一个值是true,则返回第二个值
1.3 如果左右两边的结果有一个false,则返回前一个false的值
2.或运算
2.1如果第一个值是true,则返回第一个值
2.2 如果第一个值是false,则返回第二个值
*/
//短路与
//true&& alert("我弹出来了!");
//false&&alert("我弹不出来了!");
/*
//非布尔值的逻辑与
console.log(1&&2);//2
console.log(2&&0);//0
console.log(NaN&&5);//NaN
console.log(""&&6);//""
*/
//非布尔值的逻辑或
console.log(2||0);//2
console.log(NaN||2);//2
console.log(NaN||0);//0
</script>
</head>
<body>
</body>
</html>
六.三元运算符
三元运算符:表达式 ?A:B;
语法: * 表达式? 值1:值2; * 判断表达式的值,如果是true则取值1,如果是false则取值2;
七. 字符串连接符
==+:如果运算的数据只包含字符串,那么结果就是字符串(会强制转换)==