相同优先级顺序执行
“&&” 寻找false。例如: a && b ,如果 a 为true,直接返回b,而不管b为true或者false 。
“||” 寻找true。 与&&同理,例如:a || b ,如果 a 为false,直接返回b,而不管b为true或者false 。
像 && || 连续使用,是这样的如:
return a && b || c
,根据a来判断返回值,a 是 false 则肯定返回 c;如果 b , c 都是 true ,那么我们就可以根据 a 来决定b 还是 c ,如果 a 是 false 则返回 c,如果a是true 则返回 b。
a || b && c
根据优先级相当于先算 b && c ,然后和a 相 或;如果a是true,则返回a,不论是b或c,如果a是false,则如果b是false,返回b,如果b是true,返回c;
相当于一下三种情况
>>> 1 || b && c
1
>>> 0 || 0 && c
0
>>> 0 || 1 && 2
2
&& 大于 ||
11 |
var i= a && b || g && h |
|| 常用来设置默认值,例:
== 大于 &&
|| 大于 ? :
++大于 == 大于 && 大于 ||
2 |
var a = 2 == 1 && b++ == 1; |
jQuery之 nth 函数有:
1 |
cur.nodeType == 1 && ++num == result |
have a exercise
jquery 之prop 函数有类似于:
1 |
a && b == c && d == e && f ? g:h |
相当于(a &&( b == c ) && (d == e) && f ) ? g:h
jQuery之 event 包裹函数fix有:
1 |
e.which = (event.button & 1 ? 1 : (event.button & 2 ?3 : (event.button & 4 ? 2 :0 ))) |
此种类型的运算符连续使用在jQuery是家常菜。
来个总结
02 |
. [] () 字段访问、数组下标、函数调用以及表达式分组 |
03 |
++ -- - ~ ! delete new typeof void 一元运算符、返回数据类型、对象创建、未定义值 |
07 |
< <= > >= instanceof 小于、小于等于、大于、大于等于、 instanceof |
08 |
== != === !== 等于、不等于、严格相等、非严格相等 |
+ 和++ 的优先级看是前自加还是后自加。
操作符分类 | 操作符 | 描述 |
算 术 操 作 符 |
+ |
(加法) 将两个数相加。 |
++ |
(自增) 将表示数值的变量加一(可以返回新值或旧值)。 |
- |
(求相反数,减法) 作为求相反数操作符时返回参数的相反数。作为二进制操作符时,将两个数相减。 |
– |
(自减) 将表示数值的变量减一(可以返回新值或旧值)。 |
* |
(乘法) 将两个数相乘。 |
/ |
(除法) 将两个数相除。 |
% |
(求余) 求两个数相除的余数。 |
字符串操作符 |
+ |
(字符串加法) 连接两个字符串。 |
+= |
连接两个字符串,并将结果赋给第一个字符串。 |
逻 辑 操 作 符 |
&& |
(逻辑与) 如果两个操作数都是真的话则返回真。否则返回假。 |
|| |
(逻辑或) 如果两个操作数都是假的话则返回假。否则返回真。 |
! |
(逻辑非) 如果其单一操作数为真,则返回假。否则返回真。 |
位 操 作 符 |
& |
(按位与) 如果两个操作数对应位都是 1 的话则在该位返回 1。 |
^ |
(按位异或) 如果两个操作数对应位只有一个 1 的话则在该位返回 1。 |
| |
(按位或) 如果两个操作数对应位都是 0 的话则在该位返回 0。 |
~ |
(求反) 反转操作数的每一位。 |
<< |
(左移) 将第一操作数的二进制形式的每一位向左移位,所移位的数目由第二操作数指定。右面的空位补零。 |
>> |
(算术右移) 将第一操作数的二进制形式的每一位向右移位,所移位的数目由第二操作数指定。忽略被移出的位。 |
>>> |
(逻辑右移) 将第一操作数的二进制形式的每一位向右移位,所移位的数目由第二操作数指定。忽略被移出的位,左面的空位补零。 |
赋 值 操 作 符 |
= |
将第二操作数的值赋给第一操作数。 |
+= |
将两个数相加,并将和赋给第一个数。 |
-= |
将两个数相减,并将差赋给第一个数。 |
*= |
将两个数相乘,并将积赋给第一个数。 |
/= |
将两个数相除,并将商赋给第一个数。 |
%= |
计算两个数相除的余数,并将余数赋给第一个数。 |
&= |
执行按位与,并将结果赋给第一个操作数。 |
^= |
执行按位异或,并将结果赋给第一个操作数。 |
|= |
执行按位或,并将结果赋给第一个操作数。 |
<<= |
执行左移,并将结果赋给第一个操作数。 |
>>= |
执行算术右移,并将结果赋给第一个操作数。 |
>>>= |
执行逻辑右移,并将结果赋给第一个操作数。 |
比 较 操 作 符 |
== |
如果操作数相等的话则返回真。 |
!= |
如果操作数不相等的话则返回真。 |
> |
如果左操作数大于右操作数的话则返回真。 |
>= |
如果左操作数大于等于右操作数的话则返回真。 |
< |
如果左操作数小于右操作数的话则返回真。 |
<= |
如果左操作数小于等于右操作数的话则返回真。 |
特 殊 操 作 符 |
?: |
执行一个简单的“if…else”语句。 |
, |
计算两个表达式,返回第二个表达式的值。 |
delete |
允许你删除一个对象的属性或数组中指定的元素。 |
new |
允许你创建一个用户自定义对象类型或内建对象类型的实例。 |
this |
可用于引用当前对象的关键字。 |
typeof |
返回一个字符串,表明未计算的操作数的类型。 |
void |
该操作符指定了要计算一个表达式但不返回值。 |
原文链接地址http://blog.meituo.net/2010/08/29/%E4%B8%8D%E5%8F%AF%E4%B8%8D%E7%9F%A5%E7%9A%84javascript%E8%BF%90%E7%AE%97%E7%AC%A6%E4%BC%98%E5%85%88%E7%BA%A7/
MDN链接https://developer.mozilla.org/en/JavaScript/Reference/Operators/Operator_Precedence