首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

关于两句差异

2013-09-05 
关于两句区别isFixed _isIE6 ? false : config.fixedie6Fixed _isIE6 && that.config.fixed这两句区

关于两句区别
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


[解决办法]
自己测试一下不就知道了?

a = 1;
b = 2;
document.write( (a ? false : b) + '<br>'); //false
document.write( (a && b) + '<br>'); //2

a = false;
document.write( (a ? false : b) + '<br>'); //2
document.write( (a && b) + '<br>'); //false

热点排行