关于两句区别
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,不一定是逻辑值
------解决方案--------------------
所以两句的区别在于:当_isIE6为非真时,第一个语句ie6Fixed值为false,第二个语句ie6Fixed值为_isIE6