На «Хабре» натрапив на цікавий код на JS. який визначає з яким Айпад ми маємо справу - першим, другим або третім. Третій від усіх інших відрізнити просто - у нього в властивості «devicePixelRatio» значення "2" записано. А перший від другого як?
Виявляється спосіб є - треба в подію «devicemotion» перевірити чи є у пристрої акселерометр. Не знаю для чого це все може стати в нагоді (хіба що відключати якісь ресурсомісткі спецефекти), але знати про те, що така можливість перевірки є, не завадить.
Я трохи переписав код, зробив з нього функцію, трохи спростив і навів порядок. Вийшов ось такий код:
в version буде або 1 або 3, але не 2, правильно?
Ах, прошу вибачення, 2 теж буде
Красиве рішення. Його можна використовувати в своїх проектах?
Спростили і навели порядок, замінивши перевірку умови на складання boolean з int? Ну ну.
> Спростили і навели порядок, замінивши перевірку умови на складання boolean з int? Ну ну.
витончено ж
Красиве рішення. Його можна використовувати в своїх проектах?
Звичайно можна!
Спростили і навели порядок, замінивши перевірку умови на складання boolean з int? Ну ну.
А що вас бентежить-то?
( "Всім") А ні у кого немає звички переставляти дуже короткі if / else частини першими?
А ні у кого немає звички переставляти дуже короткі if / else частини першими?
Це як?
Це як?
Інвертувати умова, щоб першим йшов короткий блок,
if (! ( 'ondevicemotion' in window)) callback (undefined);
> Else // довгий блок
>
Сенс в тому, що коли спочатку йде проста дія, простіше стежити за логікою алгоритму, вся конструкція "if then else" легко доступні для огляду, знаходиться на двох-трьох рядках, швиденько розправився з формальним відгалуженням і займаєшся реальною справою. Коли спочатку йде довгий блок, то коли настане else, вже встигнеш втратити нитку, до чого саме був цей else. Це розташування фізично поруч тих блоків, які поруч логічно. Ціна - погіршення читаності умови if, зайве заперечення неможливо прикрашає програму.
А, не я так не роблю, я роблю інше - стежу, щоб перша умова було без заперечення. Мені так естетичніше здається.
Ага, витонченості через край. І перший же каменти, де перепитує, що воно повинно робити.