运算符详解
Posted lrgupup
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运算符详解相关的知识,希望对你有一定的参考价值。
1,算术运算符
运算符 |
含义 |
实例 |
+ |
加法运算 |
(3+4)=7 |
- |
减法运算 |
(3-4)=-1 |
* |
乘法运算 |
(3*4)=12 |
/ |
除法运算 |
(3/4)=0.75 |
% |
取模运算(取余) |
(3%4)=3 |
++ |
自加运算 |
|
-- |
自减运算 |
|
- |
取反运算 |
-(3+4)=-7 |
说明:其中自加和自减运算符,又可划分为前缀和后缀! 如果位于前缀的话,将先进行自加或自减再投入计算; 如果位于后缀的话,将先投入计算,运算完毕后才进行自加或自减操作! var a=2; var b=++a; //最后b的值为变量a自加后的值3 var a=2; var b=a++; var c=a; //最后变量b的值为变量a的值2;变量c的值则为变量a自加后的值3 |
2, 赋值运算符
运算符 |
含义 |
分解表达式 |
= |
赋值 |
a =b |
+= |
相加后赋值 |
a=a+b |
-= |
相减后赋值 |
a=a-b |
*= |
相乘后赋值 |
a=a*b |
/= |
相除后赋值 |
a=a/b |
%= |
取模后赋值 |
a=a%b |
注意:赋值运算符还可以同时应用于多个变量! var a=1,b=1,c=1; a=b=c=100; 最终变量a、b、c的值都为100! var a=1,b=1,c=1; a+=b-=c*=100; 最终c的值=c*100=1*100=100、b的值=b-c=1-100=-99、a的值=a+b=1+(-99)=-98。 像这种赋值方式,其运算方向是从右到左,而不是一昧地将各个变量的值赋为最右边的值,切记! |
3, 关系运算符
运算符 |
含义 |
实例 |
> |
大于 |
(3>4)=false |
>= |
大于等于 |
(4>=3)=true |
< |
小于 |
(3<4)=true |
<= |
小于等于 |
(4<=3)=false |
!= |
不等于 |
(“3”!=3)=false |
!== |
严格不等于 |
(“3”!=3)=true |
== |
等于 |
(“3”==3)=true |
=== |
严格等于 |
(“3”===3)=false |
(“123”==123) = true (null==undefined) = true 注意:虽然使用==会在比较之前将两个表达式的值转换为相同类型,但是某些情况并没有按照我们的预期得到结果: (2 == true) = false (2 == false) = false Boolean(2) = true
(“123”===123) = false (null===undefined) = false
|
4,逻辑运算符
运算符 |
含义 |
实例 |
! |
逻辑非运算 真即假,假即真! |
!true = false !false = true |
&& |
逻辑与运算 两两为真方为真! |
true && false = false true && true = true false && false = false false && true= false |
|| |
逻辑或运算 任一为真即为真! |
True|| false =true True|| true = true false || false = false false || true= false |
|
说明:在进行逻辑或运算时,如果是将其结果赋值给一个变量,则就要参照另一z种情况了。此时的运算结果为:如果运算符前的值转换为布尔型之后的值为true,则返回该值的实际结果;否则返回运算符后的值的实际结果! 如:alert(0 || 3); 将输出:3 alert(2 || 4); 将输出:2 |
5,字符串运算
运算符 |
含义 |
实例 |
+ |
将两个参数拼接成一个字符串,只要一方参数为字符串,那么就会进行该种操作! |
123 + “123” = “123123” |
+= |
只要该运算符左边的变量或者右边的表达式有一方为字符串,那么就会进行字符串的拼接操作! |
var a=”123”; a+=123; //变量a的最终值为:”123123” |
6.其他运算符
typeof()
查看相应变量的数据类型,返回值为字符串型!
typeof(“abc”) = "string" //注:返回的结果是一个字符串类型的值
三目条件运算符(?:)
该运算符的运算方法为:首先需要计算问号”?”前的表达式的真假。如果结果为真,则取冒号”:”左侧的值并返回;如果结果为假,则取冒号”:”右侧的值并返回!
(1>2)?1:2 = 2
逗号运算符(,)
该运算符将多个运算表达式通过逗号(,)将表达式连接在一起,求值顺序从左至右!
a=1,a++,a+=2; //最后a的值为4
运算顺序
运算符的优先级和结合性 |
|||
优先级 |
运算符 |
含义 |
结合方向 |
1 |
() |
圆括号 |
从左到右 |
|
[] |
数组下标或对象属性访问 |
|
|
. |
属性访问 |
|
2 |
! |
逻辑非 |
从右到左 |
|
~ |
按位取反 |
|
|
++ |
自增 |
|
|
-- |
自减 |
|
|
- |
符号 |
|
|
delete |
删除对象属性或数组元素 |
|
|
new |
调用构成函数创建对象 |
|
|
typeof |
检测数据类型 |
|
|
void |
未定义值 |
|
3 |
* |
乘法 |
从左到右 |
|
/ |
除法 |
|
|
% |
取模 |
|
4 |
+ |
加法 |
从左到右 |
|
- |
减法 |
|
5 |
<< |
左移 |
从左到右 |
|
>> |
右移 |
|
|
>>> |
无符号右移 |
|
6 |
< |
小于 |
从左到右 |
|
<= |
小于等于 |
|
|
> |
大于 |
|
|
>= |
大于等于 |
|
|
instanceof |
检测对象是否为指定类的实例 |
|
7 |
== |
等于 |
从左到右 |
|
!= |
不等于 |
|
|
=== |
严格等于 |
|
|
!== |
严格不等于 |
|
8 |
& |
按位与 |
从左到右 |
9 |
^ |
按位异或 |
|
10 |
| |
按位或 |
|
11 |
&& |
逻辑非 |
|
12 |
|| |
逻辑或 |
|
13 |
?: |
条件表达式 |
从右到左 |
14 |
= |
赋值 |
从右到左 |
|
+= |
进行加法运算后赋值 |
|
|
-= |
进行减法运算后赋值 |
|
|
*= |
进行乘法运算后赋值 |
|
|
/= |
进行除法运算后赋值 |
|
|
%= |
进行取模运算后赋值 |
|
|
>>= |
进行右移运算后赋值 |
|
|
>>>= |
进行无符号右移运算后赋值 |
|
|
<<= |
进行左移运算后赋值 |
|
|
&= |
进行按位与运算后赋值 |
|
|
|= |
进行按位或运算后赋值 |
|
|
^= |
进行按位异或运算后赋值 |
|
15 |
, |
顺序求值 |
从左到右 |
以上是关于运算符详解的主要内容,如果未能解决你的问题,请参考以下文章