一.运算符
运算符(Operators,也翻译为操作符),是发起运算的最简单形式。
运算符的分类各有不同,我们就把运算符进行如下分类:
数学运算符(Arithmetic operators)
数学运算符(Arithmetic operators)
赋值运算符(Assignment operators)
按位运算符(Bitwise operators)
条件 (三元) 运算符(Conditional operator)
1. 数学运算符
加+
减 -
乘 *
除 /
取余数 %
括号 ()
1.
+
求两个数字和 2+3 ==>5
字符串拼接 2+’3’ ==>’23’ 任何数据和字符串相加都是字符串
-
求两个数字差 2 - 3 ==> -1*
求两个数字积 2 * 3 ==> 6/
求两个数字除 4 / 2 ==> 2%
求两个数字的余数 2 % 3 ==>2
1.1 隐式转换
所有带有字符串的运算都会尽可能的转为数字进行计算,
加号比较特殊。(加好在字符串中有拼接的意思)
数学运算中,五种基本数据类型中只有纯数字字符串、布尔值、null能够帮你进行隐式转换:
-
发生隐式转换
纯数字字符串,布尔值,null
console.log(3 * "8"); //24
-
不能隐式转换
不是纯数字的字符串和undefined
console.log(5 * "6天"); //NaN
- 特殊的加法,
因为+同时是加法和连字符的符号,所以加法在面对字符串的时候没有隐式转换,但是面对其他数据类型有隐式转换
console.log(5 + "6"); //56
2.比较(关系)运算符
> 大于
< 小于
>= 大于等于
<= 小于等于
== 等于
!= 不等于
=== 全等于
!== 不全等
2.1数字比较运算符
console,log(10 > 3); //true
console,log(6 < 3); //false
boolean类型只有两个值,就是true和false。表示真、假。true和flase叫做布尔值
==
表示”相等判断“ ,它会帮你进行隐式转换,尽可能的得到true的答案:
console.log(6 == "6"); //true
===
表示”全等判断“,不仅仅比较数值是否相等,还比较类型是否相等,没有隐式转换
console.log(6 === "6") //false
!=
(不等)是相等的反面,如果==运算是true
,那么!=
就是false
!==
(不全等)是===
的反面,如果===
运算时true
那么!==
就是false
2.2 其他运算符
- string和string的关系运算
字符串进行关系运算,比较的就是字符编码顺序
字符编码顺序,就是数字、大写字母、小写字母
"a" < "b" //true
- string和number比,string会被隐式转换为number
"25" < 3 //false
- 其他基本类型与number进行关系运算
纯数字字符串被转为数字,null转换为0,true转换为1,false转换为0
特殊:null不能进行和0的相等判断
false == 0 //true
true == 1 //true
- 特殊数字NaN的关系运算
NaN,不等于任何值包括自己,不仅不等于自己,还不全等与自己
NaN == NaN //false
3.逻辑运算符
与 或 非
&& 逻辑与运算
|| 逻辑或运算
! 逻辑非运算
3.1 &&逻辑与的真值表
a&&b
a | b | 结果 |
---|---|---|
真 | 真 | 真 |
真 | 假 | 假 |
假 | 真 | 假 |
假 | 假 | 假 |
都真才真,有假就假
3.2 、|| 逻辑或,或者的意思
a || b
a | b | 结果 |
---|---|---|
真 | 真 | 真 |
真 | 假 | 真 |
假 | 真 | 真 |
假 | 假 | 假 |
有真就真,都假才假
3.3 ! 逻辑非,就是相反的意思
a | !a |
---|---|
真 | 假 |
假 | 真 |
非真为假,非假为真
3.4 逻辑运算符的顺序
顺序:非,与,或
true || false && !true || false //true
4 赋值运算符
= 赋值
+= 加赋值
-= 减赋值
*= 乘赋值
/= 除赋值
%= 求余赋值
赋值运算是先计算右边,然后将最终的值赋值给左边
var a = 2;
a += 3; //a=a+3;
console.log(a); //5
var b = 6;
b /= 3; //b=b/3
console.log(b); //2
4.1 ++ 自增运算符
var a = 10;
a++; //a=a+1
console.log(a); //11
++可以与输出语句写在一起 ,++写在变量前和写在变量后不是一个意思
a++;先用a的原值参与运算,然后a自己加1
++a:先给a自己加1,然后用a的新值参与运算
var f = 10;
console.log(f++); //10 ,先引用原值然后加1
//等价于
var f = 10;
console.log(f);//先输出f
f++;//然后f加1
console.log(++f);
var f = 10;
f++;
console.log(f);//11
4.2 --自减运算符
5.运算符综合运算时的计算顺序
贴身的(++ -- !) ——> 数学——>比较——>逻辑——>赋值
var a = 5 < 8 && 6 < 10 ; //true