2014-01-12 1 views
1

일부 HTML5 템플릿에서 작업 중이며 인터넷에서 테마 림에 대한 작업을하고 싶기 때문에 다른 사람들이 어떻게했는지 몇 가지 예를 보았습니다. 하나의 예와 나는 정말로 그것이 작동하는 방법을 알지 못한다. 그래서 사람은Modernizr javascript 코드에 대한 설명

var pd = {}, 
verboseBuild = !0, 
screenXs = 480, 
ltIE9 = !1; 

/* Modernizer */ 

!$("html").is(".lt-ie9") || (ltIE9 = !0), 

Modernizr.addTest("ipad", function() { 
    return !!navigator.userAgent.match(/iPad/i); 
}), 
Modernizr.addTest("iphone", function() { 
    return !!navigator.userAgent.match(/iPhone/i); 
}), 
Modernizr.addTest("ipod", function() { 
    return !!navigator.userAgent.match(/iPod/i); 
}), 
Modernizr.addTest("appleios", function() { 
    return Modernizr.ipad || Modernizr.ipod || Modernizr.iphone; 
}), 
Modernizr.appleios && $("html").addClass("ios-device"), 
    !verboseBuild || console.log("Starting builds:"), 
    $(document).ready(function() { 
     !verboseBuild || console.log("-- starting proton.common build"), 
     pd.common.build(); 
    }), 

좋은 것 나이를 이해하는 데 도움이 수 있고 사람이 verbosebuild 무엇인지 설명 할 수주십시오! = 0 의미와 itE9! = 1도?

감사합니다. 잘

답변

1

:

  • !0는 간단한 단어에서
  • !!<something>false 단지의 별칭 true
  • !1 단지의 별칭입니다 (항상 true 또는 false를 반환합니다)
  • 논리 값으로 <something> 캐스트

(Btw, I don 왜 그들의 개발자가 처음 2 일을했는지에 대한 이유를 알지 못한다. 내 의견으로는, 이것은 마이크로 최적화가 될 것이므로, 그렇게해서는 안된다.)

그래서, 예를 들어 :

ltIE9 = !1는 IE 버전 9이 도움이 높은

희망을 의미합니다. 건배

+0

그냥 궁금해서 어떻게'! 1'을 미세화시킬 수 있습니까? JS가 먼저 '1'을 'true'로 평가해야합니까? 나는'false'가'! 1'보다 빠르다는 것을 알았을 것입니다. – Adam

+0

그것이 맞는지 확실하지 않지만, 다른 이유를 생각하지 못했습니다. 왜 그들이 그렇게했다고 생각하니? –

+0

잘못된 자아는 제 의견입니다. 숙련 된 개발자는이 프로그램을 작성한 개발자가 뜨거운 공기를 불어 날 뿐이라는 것을 알게 될 것이며, 초보 개발자는 추상적이고 특별한 구문에 "불만"을 표할 것이며 개발자가 작성하지 않은 것을 알아야한다고 생각합니다. 궁극적으로'! 0'과'! 1'은 절대 의미가 없습니다. – Adam