javascript运算符

5.1.2   优先级和结合性

优先级:指运算符的运算顺序,通俗的说就是先计算哪一部分。

结合性:同一优先级运算符的计算顺序,通俗的说就是从哪个方向算起,是左到右还是右到左。

 

 优先级  运算符  描述  结合性
由高到低排序 () 括号 从左到右
++ -- 递增或递减 从右到左
! 逻辑非 从右到左
*   /   % 乘法、除法、取模 从左到右
+   - 加法、减法 从左到右
+ 拼接 从左到右
<     <= 小于、小于等于 从左到右
>     >= 大于、大于等于 从左到右
= =     != 等于、不等于 从左到右
= = =     != = 等同(类型相同)、不等同 从左到右
& 按位与 从左到右
| 按位或  
^ 按位异或  
~ 按位非  
<< 按位左移  
>> 按位右移  
>>> 按位右移,左边以0填充  
&& 逻辑与 从左到右
| | 逻辑或 从左到右
?: 三元条件表达式 从右到左
=  +=  -=  *=  %=  <<=  >>= 赋值 从右到左

 

 

1 var x = 5+4*12/4  //4*12 /4 +5 

 

 

5.2   运算符类型

5.2.1   算术运算符: + - * /

递增运算和递减运算,递增运算是将其操作数加1,递减运算是将其操作数减1。运算符有:前缀形式(++X 或 - -X),后缀形式(X++ 或 - -X)。

前缀形式是先运算再赋值。如:y=0  x=5   y=++x   y=6   因为是先运算再赋值,先将x+1后再赋值给y,所以y=6   x=6

后缀形式是先赋值在运算。如:y=0  x=5   y=x++   y=5   因为是先赋值再运算,先把x的值赋给y,所以y=5   x=6

 

5.2.2   相等:当两个数的数值相同时它们相等。字符串和数字进行比较时,如果数字和字符串有相同的字符串则它们相等,如:"500"和500相等。NaN(非数字)和任何操作数都不相等,包括NaN本身。正零和负零是相等的。Null和undefined是相等的。

 

5.3   逻辑运算符

&&逻辑与:两个条件都满足时才为true。如果&&左侧的表达式的计算结果为零,null或空字符"",则表达式的值为false,如果运算符左侧的表达式的计算结果为true(非零),就计算右侧的表达式,如果该表达式也为true,则整个表达式的结果就为true。如果运算符左侧为true,右侧为false,那么整个表达式的值就为false。

“this”&&“that” 返回的值是that,因为&&需要两个都为真,当两个值都为真时就返回最后的一个值。

 

| |逻辑或:只需要一个条件为true,就为true。如果左侧表达式为true,侧不需要再做其它操作,整个表达式就为真;如果左侧为false,就计算右侧,右侧为true整个表达式就为true,右侧为false整个表达式就为false。

“this”&&“that” 返回的值是this,当this为真时就满足了一个条件为真,整个表达式就为真,所以返回的值是this。

 

!逻辑非:如果表达式为false则返回true,如果表达式为true则返回false。

 

5.4   条件运算符

格式:条件表达式?表达式:表达式    

示例:x ? y : z   如果x为真,表达式的值为y,否则表达式的值变为z

    big = (x > y) ? x : y   如果x大于y,则将x赋给变量big,否则将y赋给变量big

 

5.5   位运算符

 

运算符 函数 示例 运算规则
& 位与 x & y 如果两个相应位都为1则该位返回1
| 位或 x | y 如果两个相应位有一个为1则返回1
^ 位异或 x ^ y 如果两个相应位只有一个为1则返回1
~ 位非 ~x 将运算符按位取反,将1变0,0变1
<< 左移 x << y 将二进制数x向左移y位,右边补0
>> 右移 x >> y 将二进制数x向右移y位,移出位丢弃
>>> 右移补零 x >>> b 将二进制数x向右移y位,移出位丢弃,左边以0填充

 

 

   101

&  100

-----------

   100

 

5.6   数据类型转换

String()  转换为字符串类型

Number()  转换为数字类型

Boolean()  转换为布尔类型

 

1 var result = Number(num1)+Number(num2)  //将num1和num2转为为数字类型后相加后的值赋给result 

 

parseInt:将字符串转换为整数。从字符串的开头开始解析,在第一个非整数的位置停止解析,并返回前面读到所有的整数。如果字符串不是以整数开头的,将返回NaN。如:parseInt(“150 hi”)返回的值是:150,parseInt("hi")返回的值是:NaN。

 

parseFloat:将字符串转换为浮点数。 从字符串的开头开始解析,在第一个非整数的位置停止解析,并返回前面读到所有的整数。如果字符串不是以整数开头的,将返回NaN。如:parseFloat("15.5 hi") 返回的值是:15.5,parseFloat("hi 15.5")返回的值是:NaN。

 

eval:将字符串作为javascript表达式进行计算,并返回执行结果,如果没有结果则返回undefined。

 

1 var str="5+4"; 
2 var num1=eval(str);  //eval()函数将"5+4"作为javascript指令计算字符串表达式。变量num1的值
posted @ 2012-05-18 08:59  yexingwen  阅读(2125)  评论(0编辑  收藏  举报