表达式:值和操作符,运算会有一个结果;
同时,表达式中的每个数值,又称为 子表达式
3.1 算术运算符
+ - * / %
3.2 一元运算符
一元运算符:只有一个操作数的运算符
5 + 6 两个操作数的运算符 二元运算符
++ 自身加1
-- 自身减1
前置++
var num1 = 5; ++ num1; var num2 = 6; console.log(num1 + ++ num2) ; //13
后置++
var num1 = 5; num1 ++; var num2 = 6 console.log(num1 + num2 ++); //12
猜猜看
var a = 1; var b = ++a + ++a; //2+3 console.log(b); //5 var a = 1; var b = a++ + ++a; //1+3 console.log(b);//4 var a = 1; var b = a++ + a++; //1+2 // console.log(b); // 3 var a = 1; var b = ++a + a++; //2+2 console.log(b);//4
总结
前置++:先加1,后参与运算
后置++:先参与运算,后加1;后++ 有两个运行条件,满足其一则执行 表达式没有结束但是又被使用了,表达式结束了;
上面两个理解后,下面两个自通
前置-- :先减1,后参与运算
后置-- :先参与运算,后减1
//前置-- var d1 = 5; --d1; //4 var d2 = 5; console.log(d1 + --d2); //8 //后置-- var m1 = 5; m1--; //4 var m2 = 5; console.log(m1 + m2--); //9
3.3 逻辑运算符(布尔运算符)
&& 与 两个操作数同时为true,结果为true,否则都是false || 或 两个操作数有一个为true,结果为true,否则为false ! 非 取反
3.4 关系运算符(比较运算符)
< > >= <= == != === !==
== 与 === 的区别:== 只进行值得比较,=== 类型和值同时相等,则相等
var result = '55' == 55; // true
var result = '55' === 55; // false 值相等,类型不相等
var result = 55 === 55; // true
3.5 赋值运算符
= += -= *= /= %=
例如:
var num = 0;
num += 5; //相当于 num = num + 5;
3.6 运算符的优先级
优先级从高到底
1. () 优先级最高
2. 一元运算符 ++ -- !
3. 算数运算符 先* / % 后 + -
4. 关系运算符 > >= < <=
5. 相等运算符 == != === !==
6. 逻辑运算符 先&& 后||
7. 赋值运算符 =
// 练习1:
var s = 4 >= 6 || '人' != '程序员' && !(12 * 2 == 144) && true
console.log(s); //true
// 练习2:
var num = 10;
var f = 5 == num / 2 && (2 + 2 * num)
console.log(f.toString() === 22) //false