日期:2014-05-16  浏览次数:20427 次

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

------解决方案--------------------
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;
}


------解决方案--------------------
isFixed = _isIE6?false : config.fixed; 
// _isIE6= false 否则取 config.fixed;
 

ie6Fixed = _isIE6 && config.fixed;
// _isIE6 时取 config.fixed

 
------解决方案--------------------
说白了这两句话的区别:
第一句是当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
------解决方案--------------------
isFixed = _isIE6 ? false : config.fixed;
_isIE6为真值时isFixed为false。否则isFixed为config.fixed,不一定是逻辑值

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

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

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