利用运算符优先级实现ifelse表达式


<script type="text/javascript">
/*******************************************************************
    利用运算符优先级实现ifelse表达式
    result = expression1 && expression2                        
    当且仅当两个表达式的值都等于 True 时, result 才是 True。  
    如果任一表达式的值等于 False, 则 result 为 False。        
    JScript 使用下面的规则,来把非 Boolean 值转换为 Boolean 值:
    所有对象都被认为是 true。                                  
    字符串当且仅当为空时被认为是 false。                       
    null 和未定义的均被认为是 false。                          
    数字当且仅当为零时是 false。                               
*******************************************************************/

alert(1&&0);    //false,return the first false's argument    0

alert(1&&2);    //true,return the last true's argument        2

/*******************************************************************
    result = expression1 || expression2                        
    如果两个表达式中有一个或两个等于 True,则 result 是 True。 
    JScript 使用下面的规则来把非 Boolean 值转换为 Boolean 值: 
    所有对象都被认为是 true。                                  
    字符串当且仅当为空时才被认为是 false。                     
    null 和未定义的均被认为是 false。                          
    数字当且仅当为 0 时才是 false。                            
*******************************************************************/

alert(1||0);        //true,return the first ture's argument    1
alert(0||false);    //false,return the last false' argument    false

/*******************************************************************
    "并列"表达式,返回最后一个表达式                           
*******************************************************************/

alert((1,0,-1));    //return the last argument -1

/*******************************************************************
    利用运算符优先级实现if(...){...}else{...}                        

    無明確返回值的一律返回undefined
    undefined,null都將被轉換為false
*******************************************************************/
var a = true;

a && (alert('true'),1) || alert('false')

/*******************************************************************
    或者用三目运算符                        
*******************************************************************/
a ? alert('true') : alert('false');

</script>



[本日志由 dh20156 于 2009-04-23 10:21 AM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: 运算符 优先级
评论: 0 | 引用: 0 | 查看次数: 2381
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 关闭 | [img]标签 关闭