var _IE = (function(){
    var v = 3, div = document.createElement('div'), all = div.getElementsByTagName('i');
    //以下这几行是什么意思?
    while (
        div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
        all[0]   
    );
    return v > 4 ? v : false ;
}());
javascript解读代码

解决方案 »

  1.   

    var t= 5;
    while(--t,t){


    };
    var $a = t;




    var t = 5;
    var arr = [4,5,6,0,3,6]
    while(--t,arr[t]){

    }
    var $a = arr[t];
      

  2.   

    var v = 3     //ie的版本索引
    , div = document.createElement('div')    
    , all = div.getElementsByTagName('i');      //获取 div 下的i的 集合(该集合在页面变化时候会 自己刷新)
        //以下这几行是什么意思?
        while (
           //现在我们给div 添加一个  ie 专用的条件判断(类似于编译参数) 注意  (++v)
            div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->'
            ,
            all[0]   //如果 上面的条件成功 那么div下面会增加 <i> 那么  all[0]返回非空 也就是那个添加的<i> 好吧  他的返回值变成while的判断条件
        );
      

  3.   

    IE4以上IE返回版本号,其他返回false.
    有点意思,如果未来条件注释取消,这样判断IE不妥吧