가장 짧은 IE 버전의 이상한 판단 JS 스크립트

1857 단어
conditional comment을 사용하여 IE 버전을 판단합니다.응, 일찌감치 제기되었는데 코드를 제대로 보지 못했어.어제 마침 CSS3 PIE를 보다가 보니 말이 안 되는 거 아닌가.오늘 Paul Irish 씨도 말씀하시길래 추천해드릴게요.이것은 작가 블로그에 쓴 것이다.
 
  
// ----------------------------------------------------------
// A short snippet for detecting versions of IE in JavaScript
// without resorting to user-agent sniffing
// ----------------------------------------------------------
// If you're not in IE (or IE version is less than 5) then:
//     ie === undefined
// If you're in IE (>=5) then you can determine which version:
//     ie === 7; // IE7
// Thus, to detect IE:
//     if (ie) {}
// And to detect the version:
//     ie === 6 // IE6
//     ie > 7 // IE8, IE9 ...
//     ie < 9 // Anything less than IE9
// ----------------------------------------------------------

// UPDATE: Now using Live NodeList idea from @jdalton

var ie = (function(){

    var undef,
        v = 3,
        div = document.createElement('div'),
        all = div.getElementsByTagName('i');

    while (
        div.innerHTML = '',
        all[0]
    );

    return v > 4 ? v : undef;

}());


이while 문장을 주의해 보세요.내가 제일 재밌었어.쉼표의 경우나도 익숙하지 않다. 변수 정의와 같은 용법에 머물러 있을 뿐이다.예를 들면 다음과 같습니다.
 
  
var a= 'b', c = 'd', e = 'f';

var obj = {
 a: 'b',
 c: 'd',
 e: 'f'
}


동료 @kangpangpang에게 물어보고 책을 한 번 더 찾아봤어요.사실 이것은 비교적 드물다.보통 마지막 값을 되돌려줍니다.
 
  
var a = (1,2,3,5,6,0,9,4); // a === 4

응, 아마 그럴 거야.재밌네.

좋은 웹페이지 즐겨찾기