可能是跟运算符的方向有关吧,&&是从左到右运算的,可能就这样吧...

解决方案 »

  1.   

    楼主对JS研究的够透彻的啊~~
    我的理解是 :"北京"&&"上海" 返回 "上海" 及"" && "北京" 返回"" 等等没什么特别原因,只是你发现在JS解释器是如何实现短路与这个算法了而已,可能以后的版本 && 还是短路与,但 
    "北京"&&"上海" 返回的就是 true  或者是 "北京"了,呵呵
      

  2.   

    "北京"&&"上海" ,本质上是不合法的表达式,只是js解释器语法检查不严格,让这样的错误漏网了而已。至于它出现什么结果是没有任何意义的。
      

  3.   

    exp1 && exp2 的运算规则是如果exp1为假则不计算exp2
    这样类似 anObject && anObject.anProperty 的表达式在 anObject 为空时不会出错
    之所以会有楼主所说的情况应该是javascript把这个表达式翻译成这个样子了吧:
    if( !exp1 )
        return exp1
    else
        return exp2
      

  4.   

    谢谢各位的解答,可能是我有点钻牛角尖了。这样的式子可能本身并无什么意义。
    ditto0723(共产不党) 能解释一下什么是短路与吗?