前言
这部分来学习JavaScript的操作符,需要掌握各种操作符的用法。操作符也称作运算operator,js中发起运算的最简单的方式。
操作符
1.算数运算符
加减乘除取余+ - * / %(),运算顺序是先算乘除取余,后算加减,有小括号先算小括号。
代码如下(示例):
// console.log(4 + 5);
// console.log(4 - 5);
// console.log(4 * 5);
// console.log(4 / 5);
// console.log(4 % 5);
// NaN
// console.log(NaN + 5);
// console.log(NaN - 5);
// console.log(NaN * 5);
// console.log(NaN / 5);
// console.log(NaN % 5);
// Infinity
console.log(Infinity + 5);
console.log(Infinity - 5);
console.log(Infinity * 5);
console.log(Infinity / 5);
console.log(Infinity % 5);
console.log(5 + Infinity);
console.log(5 - Infinity);
console.log(5 * Infinity);
console.log(5 / Infinity);
console.log(5 % Infinity);
console.log(Infinity + Infinity);
console.log(Infinity - Infinity);
console.log(Infinity * Infinity);
console.log(Infinity / Infinity);
console.log(Infinity % Infinity);
2.比较运算符
也叫作关系运算符,比较操作数并返回一个布尔类型的值。
代码如下(示例):
<script>
// 比较运算符
console.log(5 > 6);
console.log(5 < 6);
console.log(5 >= 6);
console.log(5 <= 6);
console.log(5 == 6);
console.log(5 != 6);
console.log(5 === 6);
console.log(5 !== 6);
// 其他情况 NaN
console.log(NaN > 6);
console.log(NaN < 6);
console.log(NaN >= 6);
console.log(NaN <= 6);
console.log(NaN == 6);
console.log(NaN != 6);
console.log(NaN === 6);
console.log(NaN !== 6);
console.log(NaN > NaN);
console.log(NaN < NaN);
console.log(NaN >= NaN);
console.log(NaN <= NaN);
console.log(NaN == NaN);
console.log(NaN != NaN);
console.log(NaN === NaN);
console.log(NaN !== NaN);
// 其他情况 Infinity
console.log(Infinity > 6);
console.log(Infinity < 6);
console.log(Infinity >= 6);
console.log(Infinity <= 6);
console.log(Infinity == 6);
console.log(Infinity != 6);
console.log(Infinity === 6);
console.log(Infinity !== 6);
console.log(Infinity > Infinity);
console.log(Infinity < Infinity);
console.log(Infinity >= Infinity);
console.log(Infinity <= Infinity);
console.log(Infinity == Infinity);
console.log(Infinity != Infinity);
console.log(Infinity === Infinity);
console.log(Infinity !== Infinity);
</script>
其他数据类型也可以参与比较,其他类型会隐式转换为数字进行比较。
null判断比较特殊,null与0判断时,=判断为false,而>=和<=判断为false。undefined==null判断结果则为true。
字符串与字符串比较,不发生隐式转换。字符编码顺序为0-9,A-Z,a-z前面的小于后面的。
比较顺序从前往后进行比较,前面的得出结果再和后面的进行比较。
// 字符串与字符串比较
console.log(6 < "12");
console.log("6" < "12");
console.log("A" < "12");
console.log("A" < "a");
console.log("banner" > "banana");
// 从前往后进行比较,前面得出了结果再往后进行比较
console.log(3 > 2 > 1);
3.逻辑运算符
常用于布尔类型值之间,当操作数都是布尔值时,返回值也是布尔值
&&逻辑与运算
||逻辑或运算
!逻辑非运算
// 逻辑与
console.log(true && true);
console.log(true && false);
console.log(false && true);
console.log(false && false);
// 逻辑或
console.log(true || true);
console.log(true || false);
console.log(false || true);
console.log(false || false);
// 逻辑非
console.log(!true);
console.log(!false);
console.log(!!!!true);
非正常情况:其他数据类型也可以参与逻辑运算,会隐式转换成布尔类型的值再进行逻辑运算。
运算符顺序:非与或
// 非正常情况,其他数据类型参与运算
console.log(null && "12");
console.log(1 && "12");
console.log(null || "12");
console.log(1 || "12");
// 非运算的结果之能事true和false
console.log(!7);
// 运算符的顺序
console.log(null && undefined || !6);
4.赋值运算符
变量位于操作符左侧
<script>
var a = 6;
a += 3;
console.log(a);
a *= 3;
console.log(a);
</script>
5.一元运算符
a++:先参与程序,再自加。
++a:先自加,后参与程序。
<script>
var a = 10,b = 20,c = 30;
num = a++ + ++b + c++ + ++a;
console.log(num);
</script>
6.运算优先级
运算优先级也叫作综合运算顺序。
优先级从高到低:
(1)()优先级最高
(2)一元运算符 ++ - - !
(3)算数运算符 先* / % ,后+ -
(4)关系运算符 > >= < <=
(5)相等运算符 == != === !==
(6)逻辑运算符 && ||
(7)赋值运算符
<script>
// () → 一元 → 算术 → 比较 → 逻辑 → 赋值
var a = 4;
var num = 1 * (2 + 3) && ++a || 5 > 6 && 7 < 8 || !9;
//var num = 1 * 5 && ++a || 5 > 6 && 7 < 8 || !9;
//var num = 1 * 5 && 5 || 5 > 6 && 7 < 8 || false;
//var num = 5 && 5 || 5 > 6 && 7 < 8 || false;
//var num = 5 && 5 || false && true || false;
//var num = 5 || false || false;
//var num = 5;
console.log(num);
</script>
总结
操作符就学习到这里啦,每天坚持学习前端,加油~