运算符
算数运算符
+ | 加 |
---|---|
- | 减 |
* | 乘 |
/ | 除 |
% | 取模(取余) |
特点
-
运算符也叫操作符,通过运算符可以对一个或多个值进行运算,并获取运算结果。
-
运算符都会返回结果, 比如:typeof就是运算符,它的返回值是以字符串类型进行返回。
-
运算符一般不会对原变量产生影响。
-
在对非Number类型进行运算时,会将数值转换为Number然后在进行运算**(除加法)**
-
任何数与NaN进行运算,结果都是NaN
-
任何值与字符串相加都会进行拼串。
一元运算符
一元运算符,只需要一个操作数
- 正号 +
- 正号不会对数值进行影响,可以对一个其他的类型进行转换为Number类型
- 负号 -
- 负号可以对数字进行符号的区反
var j = 123;
var k = -j;
console.log(k); // -123
var l = null;
console.log(typeof +l); // Number ,把字符串类型转换成了Number类型
console.log(+l); // 0
自增和自减
基本含义:让一个变量涨一个数字1,或者让一个变量降一个数字1
使用格式:写在变量名称之前,或者写在变量名称之后。例如:++num也可以num++
使用方法:
1,单独使用:不和其他任何操作混合,自己独立成为一个步骤。
2,混合使用:和其他操作回合,例如与赋值混合,或着与打印操作混合,等。
使用区别:
1,在单独使用的时候,前++和后++没有任何区别。
2,混合使用的时候,有【重大区别】
A,如果是【前++】,那么变量立刻马上+1,让后拿着结果进行使用。【先加后用】
B,如果是【后++】,那么首先使用变量本来的数值,【让后再让变量+1】。【先用后加】
注意事项
1,只有变量才能使用自增、自减运算符。常量不可能发生改变,所以不能用。
逻辑运算符
与(并且) | && | 全都是true才是true,要不就是false |
---|---|---|
或(或者) | || | 至少一个是true,就是true。全是false才是false |
非(取反) | ! | 本来使true,变成false。本来是false,变成true |
短路
与:从左往右开始检查,直到遇见false时,后面的数值将不进行检查,之间返回false。
或:从左往右开始检查,直到遇见true时,后面的数值将不进行检查,之间返回true。
非布尔值
对于非布尔值进行运算时,会首先转换为布尔值然后在进行运算。
-
与
- 如果第一个值为true,则必然会返回第二个值
- 如果第一个值为false,则必然返回第一个值
-
或
-
如果第一个值为true,则必然会返回第一个值
-
如果第一个值为false,则必然返回第二个值
-
赋值运算符
赋值运算符:“=”
可以将符号右侧的值赋值给符号左侧的变量
+= | a += 5 | a = a + 5 |
---|---|---|
-= | a -= 5 | a = a - 5 |
*= | a *= 5 | a = a * 5 |
/= | a /= 5 | a = a / 5 |
%= | a %= 5 | a = a % 5 |
关系运算符
> | 1 > 2 | false |
---|---|---|
>= | 2 >= 2 | true |
< | 1 < 2 | true |
<= | 1 <= 2 | true |
!= | 1 != 2 | true |
非数值比较
-
在对比非数值时,会首先进行转换,然后再进行比较。
-
两边都是字符串时,不会将其转换为数字进行比较,会分别比较字符串中字符的Unicode编码。
-
任何值与NaN作比较都是false
console.log(55 > a); // false, a = 61
console.log(a < b); //true,a=61 b=62
console.log(abc < b); // true,比较时是一位一位进行的,如果第一位编码一样则进行下一个字符进行比较
注意:在比较两个字符串性的数值时,一定要进行转型。
相等运算符
==(相等) | 判断两个值是否相等,自动做类型转换 | console.log(“8” == 8); true |
---|---|---|
!=(不相等) | 判断两个值是否不相等,自动做类型转换 | console.log(“8” != 8); false |
===(全等) | 判断两个值是否全等,不做自动类型转换 | console.log(“8” === 8); false |
!==(不全等) | 判断两个值是不全等,不做自动类型转换 | console.log(“8” !==8 ); true |
全等:判断两个值是否全等,不会做自动类型转换,类型不同会直接返回false
不全等:判断两个值是否不全等,不会做自动类型转换,类型不同会直接返回true
条件运算符
条件运算符也叫做三元运算符
格式:[条件表达式]?[语句一]:[语句二];
执行流程
- 条件表达式为true时,执行语句一
- 条件表达式为false是,执行语句二
var a;
a = 1>2 ? console.log("对") : console.log("错");
console.log(a); // 错
运算符的优先级
运算符“,”可以分割多个语句,一般可以在声明多个变量时使用