2014-01-12 3 views
1

Я работаю над некоторым шаблоном HTML5, и я смотрю несколько примеров в Интернете, как это сделали другие ребята, так как я хотел бы поместить свою работу в Theme Forest, я нашел этот мир кода в один из примеров, и я действительно не могу понять, как это работает. Поэтому, пожалуйста, если кто-нибудь может помочь мне понять это было бы здоровоModernizr javascript code explain

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 это просто псевдоним для true
  • !1 просто псевдоним для false
  • !!<something> простыми словами, бросает <something> в булево (всегда будет возвращать true или false)

(Btw, I don «Не знаю причин, почему их разработчики сделали первые 2, на мой взгляд, это будет микрооптимизация, это не должно быть сделано».

Так, например:

ltIE9 = !1 означает IE версия 9 или выше

Надеются, что это помогает. Cheers

+0

Просто любопытно, как '! 1' микрооптимизация? Разве JS не должен сначала оценивать «1» до «истинного»? Я бы сказал, что это «ложь» была бы быстрее, чем '! 1' – Adam

+0

Я не уверен, что это так, но я не мог придумать другую причину, по которой они это сделали. Почему вы думаете, что они это сделали? –

+0

Неверное эго, мое мнение. Опытные разработчики будут знать разработчика, который написал это, просто дует горячий воздух, новички-разработчики будут «впечатлены» (к сожалению) абстрактным и необычным синтаксисом и считают, что разработчик, который написал это, должен знать то, чего у них нет. В конечном счете, '! 0' и'! 1' - абсолютно абсурд. – Adam