[AS3]as3中或者(||)与(&&)运算相关的总结

一、基本原则

1.按照运算符号优先级,先()再与再或。
2.与运算:要求每个表达式都返回真才为真。
3.或运算:要求有一个表达式为真就返回真。

二、按照基本原则进行逻辑运算

1.与运算:要求每个表达式都返回真才为真,所以将计算表达式直至第一个非真表达式。所以将返回第一个非真表达式的值。
2.与运算:按上述法则,假设表达式最终为非假,即没有一个非真表达式,根据第一法则,将返回最后一个表达式的值。
3.或运算:要求只要一个表达式返回真就为真,所以将计算表达式直至第一个非假表达式。所以将返回第一个非假表达式的值。
4.或运算:按第三法则,假设表达式最终为非真,即没有一个非假表达式,根据第三法则,将返回最后一个表达式的值。
5.混合运算:按照优先级分开计算。

三、测试

变量:
var a=1,b={},c=null,d=false;
其中a和b为非假表达式,c和d为非真表达式

1.表达式a && b && c && d将返回第一个非真表达式的值,即c为null。
2.表达式a && b && d && c将返回第一个非真表达式的值,即d为false。

1.表达式a && b将返回最后一个表达式的值,即b为[object object]。
2.表达式b && a将返回a为1。

1.表达式c || d将返回最后一个表达式的值,即d为false;
2.表达式d || c将返回c为null。

1.表达式a || b || c || d将返回第一个非假表达式的值,即a为1。
2.表达式b || a || c || d将返回第一个非假表达式的值,即b为[object object]。

1.表达式a && b || c && d
分解,先与运算再或运算 a && b值为b,c && d值为c。
得到 b || c,所以最终结果为第一个非假表达式b=[object object]。
2.表达式a && c || b && d
同上,得到 c || d,最终结果为d=false。
3.表达式c && a || b && d
同上,得到 c || d,最终结果为d=false。
4.表达式a || b && c || d

根据或运算的基本原则,最终得到结果a=1。
计算顺序:

1.b && c得到c=null。
2.a || null ||……因为a=1为真,将直接返回a。
注:其实这个计算顺序有待考证,第一步应该是计算了。

5.表达式c || a && b || d
计算顺序:
1.a && b得到b=[object object]。
2.c || {} || d,计算到第一个非假值,返回[object object]。
注:第一步是一定计算了。

6.表达式

……
……

综述:最终都归结到了原则与法则。

1.如果表达式中最外层有||运算,直接找第一个非假表达式,其值为最终返回值。
2.如果表达式中最外层有&&运算,直接找第一个非真表达式,其值为最终返回值。
3.如果表达式中最外层有||运算且不存在非假表达式,其值为最后一个非假表达式的值。
4.如果表达式中最外层有&&运算且不存在非真表达式,其值为最后一个非真表达式的值。
5.表达式中有()运算符,请参照法则。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值