isFixed = _isIE6 ? false : config.fixed;
ie6Fixed = _isIE6 && that.config.fixed;
这两句区别是什么啊?

解决方案 »

  1.   

    isFixed = _isIE6 ? false : config.fixed;
    转换为//三项表达式
    var isFixed ;
    if(_isIE6 ){
        isFixed = false;
    }else{ 
        isFixed = config.fixed;
    }ie6Fixed = _isIE6 && that.config.fixed;
    转换为//&&操作的意思是前面是true则返回后面的,要不直接返回false
    if(_isIE6 ){
       ie6Fixed =  that.config.fixed
    }else{
       ie6Fixed = false;
    }
      

  2.   

    isFixed = _isIE6?false : config.fixed; 
    // _isIE6= false 否则取 config.fixed;
     ie6Fixed = _isIE6 && config.fixed;
    // _isIE6 时取 config.fixed 
      

  3.   

    说白了这两句话的区别:
    第一句是当1._isIE6 为false时config.fixed为true时,isFixed才为true,2.如果_isIE6 为false时config.fixed为false时,isFixed才为false, 3.只要_isIE6 为true时,isFixed为false
    第二句是上_isIE6为true时并且config.fixed为true时,isFixed才为true,其他情况下isFixed为false
      

  4.   

    isFixed = _isIE6 ? false : config.fixed;
    _isIE6为真值时isFixed为false。否则isFixed为config.fixed,不一定是逻辑值ie6Fixed = _isIE6 && that.config.fixed;
    _isIE6为非真值是ie6Fixed为_isIE6,不一定是逻辑值,比如null、空字符串等。否则isFixed为config.fixed,不一定是逻辑值
      

  5.   

    所以两句的区别在于:当_isIE6为非真时,第一个语句ie6Fixed值为false,第二个语句ie6Fixed值为_isIE6
      

  6.   

    自己测试一下不就知道了?a = 1;
    b = 2;
    document.write( (a ? false : b) + '<br>'); //false
    document.write( (a && b) + '<br>'); //2a = false;
    document.write( (a ? false : b) + '<br>'); //2
    document.write( (a && b) + '<br>'); //false