操作符
算术运算符
+ - * / %
一元运算符
一元运算符:只有一个操作数的运算符
5 + 6 两个操作数的运算符 二元运算符
++ 自身加1
– 自身减1
-
前置++
var num1 = 5; ++ num1; var num2 = 6; console.log(num1 + ++num2);
-
后置++
var num1 = 5; num1 ++; var num2 = 6 console.log(num1 + num2++);
-
猜猜看
var a = 1; var b = ++a + ++a; console.log(b); var a = 1; var b = a++ + ++a; console.log(b); var a = 1; var b = a++ + a++; console.log(b); var a = 1; var b = ++a + a++; console.log(b);
总结
前置++:先加1,后参与运算
后置++:先参与运算,后加1
上面两个理解后,下面两个自通
前置-- :先减1,后参与运算
后置-- :先参与运算,后减1
示例代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>一元运算符</title>
</head>
<body>
<script>
//一元运算符:只需要一个操作数 ++ --
//++ :前++ :先自加后运算/执行 后++:先运算/执行后自加
//-- :前-- :先自减后运算/执行 后--:先运算/执行后自减
// var num = 5;
// // num --;
// // console.log(num);
// // num ++;
// var num2 = 5;
// // ++ num2 = 5;
// // console.log(num,num2);//6,6
// console.log(num++);//5
// console.log(++num2);//6
var num1 = 5;
++ num1;
var num2 = 6;
console.log(num1 + ++ num2);//
</script>
</body>
</html>
逻辑运算符(布尔运算符)
&& 与 两个操作数同时为true,结果为true,否则都是false
|| 或 两个操作数有一个为true,结果为true,否则为false
! 非 取反
关系运算符(比较运算符)
< > >= <= == != === !==
//==与===的区别:==只进行值得比较,===类型和值同时相等,则相等
var result = '55' == 55; // true
var result = '55' === 55; // false 值相等,类型不相等
var result = 55 === 55; // true
赋值运算符
= += -= *= /= %=
例如:
var num = 0;
num += 5; //相当于 num = num + 5;
运算符的优先级
优先级从高到底
1. () 优先级最高
2. 一元运算符 ++ -- !
3. 算数运算符 先* / % 后 + -
4. 关系运算符 > >= < <=
5. 相等运算符 == != === !==
6. 逻辑运算符 先&& 后||
7. 赋值运算符
示例代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>操作符</title>
</head>
<body>
<script>
/*
* 操作符:一些符号,用来计算
* 算数运算符:+ - * / %
* 算数运算表达式:由算数运算符连接起来的表达式
* ①一元运算符:这个操作符只需要一个操作数就可以运算的符号 ++ --
* ②二元运算符:需要两个操作数 var num = 10 + 5;
* ③三元运算符:需要三个操作数,写条件判断的时候讲->即三元表达式
* ④复合运算符:+= -= *= /= %=
* ⑤关系运算符:> < >= <= ==(不严格的等于) ===(严格的等于) !=(不严格的不等于) !==(严格的不等于)
* 如果等式成立,返回true,反之返回false
* ⑥逻辑运算符:
* &&并且->有一个表达式为false,整个结果是false;
* ||或者->有一个表达式为true,整个结果是true;
* !取非、取反->表达式的结果是true.
* ⑦赋值运算符:=
* */
// var num = 10%3;
// console.log(num);
//
// var num1 = 10;
// num1 += 10;//相当于num1 = num1 + 10
// console.log(num1)
//
// var num2 = 10;
// num2 -= 10;//相当于num2 = num1 - 10
// console.log(num2)
//
// var str = "5";
// var num = 5;
// console.log(str == num);//true 不严格,比较的是值
// console.log(str === num);//false 严格,比较的是值和数据类型
// console.log(str != num);//false 不严格,比较的是值
// console.log(str !== num);//true 严格,比较的是值和数据类
// console.log(5 > 3);
// console.log(5 == 3);
var num1 = 10;
var num2 = 20;
console.log(num1 > num2 && 5 < 6);//false
console.log(num1 > num2 || 5 < 6);//false
var flag = true;
console.log(!flag);
var str = "100hh";
console.log(isNaN(str));//true isNaN()只判断值,不判断类型
var sum = (10 + 5) * 10;//小括号提高运算级
console.log(sum);
</script>
</body>
</html>