算术运算符
返回结果为数字型的运算符
加法运算符
加法运算符(+)是一个二元运算符,可以对两个数字型的操作数进行相加运算,返回值是两个操作数的和
减法运算符
减法运算符(-)是一个二元运算符,可以对两个数字型的操作数进行相减运算,返回值是第1个操作数减去第2个操作数的值
乘法运算符
乘法运算符(*)是一个二元运算符,可以对两个数字型的操作数进行相乘运算,返回值是两个操作数之积
除法运算符
除法运算符(/)是一个二元运算符 ,可以对两个数字型的操作数进行相除运算,返回第1个操作数除以第2个操作数的值
模运算符
模运算符(%),又叫做取余运算符。是二元运算符,可以对两个数字型的操作数进行取模运算,返回第1个操作数除以第2个操作数之后的余数
负号运算符
符号运算符(-)是一个一元运算符,可以将一个数字进行取反操作,将一个正数转换成相应的负数,反之,可以将负数转换成正数
let a=5;
a=-a;
console.log(a);
可以看到结果为-5
正号运算符
与负号运算符相对应,正号运算符(+)也是一个一元运算符,但该运算符不会对操作数产生任何影响,但如果操作数不是一个数值类型的,会将其转换为数值类型
我们将变量赋值为字符串型,用正号运算符再赋值
let a="5";
a=+a;
查看变量a的类型是number
递增运算符
递增运算符(++)是一个一元运算符,该运算符可以将操作数进行递增操作,即每次增加1。递增运算符要求其操作数必须是变量。
当运算符在操作数之后:先使用后递增
当运算符在操作数之前:先递增后使用
递减运算符
递减运算符(--)是一个一元运算符,该运算符可以将操作数进行递减操作,即每次减1。递减运算符要求其操作数必须是变量。
当运算符在操作数之后:先使用后递减
当运算符在操作数之前:先递减后使用
关系运算符
关系运算符用于检查两个操作数之间的关系
相等运算符
相等运算符(==)是一个二元运算符,可以比较两个操作数是否相等。如果相等返回true,否则返回false
等同运算符
等同运算符(===)与相同运算符类似,也是一个二元运算符,同样可以比较两个操作数是否相等。如果相等返回true,否则返回false.
等同运算符与相同运算符的区别:等同运算符对操作数是否相等的判断比相等运算符的判断更为严格,等同运算符只有在两个操作数类型相同,并且值也相同的情况下才会返回true
不等运算符
不等运算符(!=)是一个二元运算符,可以比较两个操作数是否不相等。如果不相等返回true,否则返回false
不等同运算符
不等同运算符(!==)与不等运算符类似,也是一个二元运算符,同样可以比较两个操作数是否不相等。如果相等返回true,否则返回false.
不等同运算符与不等运算符的区别:不等同运算符对操作数是否相等的判断比不等运算符的判断更为严格,不等同运算符只有在两个操作数类型相同,并且值也相同的情况下才会返回true
小于运算符
小于运算符(<)是一个二元运算符,当第1操作数小于第2个操作数返回true,否则返回false
大于运算符
大于运算符(>)是一个二元运算符,当第1操作数大于于第2个操作数返回true,否则返回false
小于或等于运算符
小于或等于运算符(<=)是一个二元运算符,当第1操作数小于或等于第2个操作数返回true,否则返回false
大于或等于运算符
大于或等于运算符(>=)是一个二元运算符,当第1操作数大于或等于第2个操作数返回true,否则返回false
in运算符
in运算符虽然也是一个二元运算符,但对运算符左右两个操作数的要求严格。in运算符要求第一个操作数必须是字符串类型或可以转换为字符串型的其他类型,第二个操作数必须是数组或对象。只有第1个操作数的值是第2个操作数的属性名,才会返回true,否则返回false
let arry=["1","2","3","4"];
let a="2";
if(a in arry)
{
document.write("a在arry数组里面");
}
else
{
document.write("a不在arry数组里面");
}
字符串运算符
字符串运算符(+),该运算符的作用是连接两个字符串,并产生一个新的字符串
let a="12"
let b="21"
document.write(a+b);
可以看到连接之后并不是"33",而是“1221”
赋值运算符
赋值运算符(=)作用是给一个变量赋值,赋值运算符是一个二元运算符
运算符左侧可以是变量,数组的一个元素,对象的一个属性值,右侧可以是任意一个数值
逻辑运算符
逻辑运算符使用的是布尔操作数,在进行逻辑运算后,返回的还是布尔值,逻辑运算符常与关系运算符结合使用
逻辑与运算符
逻辑与运算符(&&) 是一个二元运算符,要求左右两个操作数的值必须是布尔值。
只有当逻辑与运算符的左侧操作数和右侧操作数的值同时为真,返回true,任意一方不为真就返回false。
let a=12;
if(a>10 && a<20)
{
document.write("a大于10且小于20");
}
else
{
document.write("a不在10~20里面");
}
逻辑或运算符
逻辑或运算符(||)是一个二元运算符,要求左右两个操作数的值都必须是布尔值。
只要运算符左侧或右侧任意一侧为真,那么返回结果为true。如果两者都为假,返回false
let a=12;
if(a>10 || a<5)
{
document.write("true");
}
else
{
document.write("flase");
}
检查结果为真
逻辑非运算符
逻辑非运算符(!)是一个一元运算符,要求操作数放在运算符之后,并且操作数的值必须是布尔型。逻辑非运算符可以对操作数进行取反操作。
逐位运算符
逐位运算符必须先将操作数转换为32位的二进制数值,然后再进行运算,运算完成将结果转换为十进制
逐位与运算符
诸位与运算符(&)是一个二元运算符,只有两个操作数中相对应的位都为1时,该结果的这一位才为1,否则为0
例如:9+10
1001
+1100
————
1000
转换为10进制结果为“8”
逐位或运算符
逐位与运算符(|)也是一个二元运算符,只要两个操作数中有一个相对应的位都为1时,该结果的这一位就为1,否则为0
逐位异或运算符
逐位异或运算符(^),第1个操作数与第2个操作数相对应的两个数值相同时结果为0,否则为1
逐位非运算符
逐位与运算符(~)是一个一元运算符,可以将操作数中所有的位的值取反
左移运算符
左移运算符(<<)是一个二元操作数,可以将第1个操作数中的所有数值向左移动,向左移动多少位由第2个操作数决定。
右移运算符
右移运算符(>>)是一个二元操作数,可以将第1个操作数中的所有数值向右移动,向右移动多少位由第2个操作数决定。
无符号右移运算符
无符号右移运算符(>>>)
该运算符与右移运算符一致,只是左侧的数值都是用0来填补
条件运算符
条件运算符(?:)是唯一一个三元运算符,得有3个操作数,第1个操作数在?之前,第2个操作数在:之前,第3个操作数在:之后
第1个操作数必须是布尔值,如果第1个操作数为true,则返回第2个操作数,否则返回第3个操作数