JS 运算符

218 阅读4分钟

算术运算符

给定 y=5,下面表格解释了这些算术运算符:

运算符描述例子x运算结果y运算结果
+加法x=y+275
-减法x=y-235
*乘法x=y*2105
/除法x=y/22.55
%取模(余数)x=y%215
++自增x=++y66
x=y++56
--自减x=--y44
x=y--5

注:i++ i的值肯定要加1 i++整体是一个旧值
++i i的值肯定要加1 ++i整体是一个新值

注:++ -- 运算符有副作用 整体也有一个值

用于字符串的 + 运算符:
加 (+) 运算符还可以把文本值或字符串变量加起来(连接起来)。
例如:

text1 = "How ";
text2 = "are you?";
text3 = text1 + text2;

text3 运算结果:

How are you?

对字符串和数字进行加法运算:
两个数字相加,返回数字相加的和,如果数字与字符串相加,返回字符串,如下实例:

x=5+5;
y="5"+5;
z="Hello"+5;

x、y、z 输出结果如下:

10
55
Hello5

赋值运算符

给定 x=10 和 y=5,下面的表格解释了赋值运算符:

运算符例子等同于运算结果
=x=yx=5
+=x+=yx=x+yx=15
-=x-=yx=x-yx=5
*=x*=yx=x*yx=50
/=x/=yx=x/yx=2
%=x%=yx=x%y

赋值运算符 具有 右结合性
例如:

x=y=z=10

把10赋给了z,z=10整体也有一个值,是左值,然后把整体这个值赋给y,依次类推,而不是把10赋给了x,y,z;

比较运算符

比较运算符在逻辑语句中使用,以测定变量或值是否相等。
给定 x=5,下面的表格解释了比较运算符:

运算符描述比较返回值
==等于x==8false
x==5true
===绝对等于(值和类型均相等)x==="5"false
x===5true
!=不等于x!=8true
!==不绝对等于(值和类型有一个不相等,或两个都不相等)x!=="5"true
x!==5false
>大于x>8false
<小于x<8true
>=大于或等于x>=8false
<=小于或等于x<=8true

逻辑运算符

逻辑运算符用于测定变量或值之间的逻辑。
给定 x=6 以及 y=3,下表解释了逻辑运算符:

运算符描述例子
&&逻辑与(and)(x<10 && y>1) 为 true
||逻辑或(or)(x==5 || y==5) 为 false
!逻辑非(not)!(x==y)为true

类型运算符

运算符描述
typeof返回变量的类型
instanceof返回 true,如果对象是对象类型的实例。

位运算符

位运算符处理 32 位数。
该运算中的任何数值运算数都会被转换为 32 位的数。结果会被转换回 JavaScript 数。

运算符描述例子等同于结果十进制
&5&10101&000100011
|5 | 10101 | 000101015
~~5~0101101010
^异或5^10101^000101004
<<零填充左位移5<<10101<<1101010
>>有符号右位移5>>10101>>100102
>>>零填充右位移5>>>10101>>>100102

上例使用 4 位无符号的例子。但是 JavaScript 使用 32 位有符号数。

因此,在 JavaScript 中,~ 5 不会返回 10,而是返回 -6。

~00000000000000000000000000000101 将返回 11111111111111111111111111111010。

条件运算符

格式: 条件表达式?语句1:语句2;

执行流程:
先算条件表达式,若条件表达式为真则执行语句1,并返回执行结果。如果条件表达式为假false,则执行语句2,并返回执行结果。如果条件表达式的值是非布尔值则会转换成布尔值。

例如:

1>2 ? yes : no;

如果 1>2 成立,输出yes,否则输出no;

运算符的优先级

下图运算符优先级从高到底排列


^_<