• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Code review - kalkulator BMI

Object Storage Arubacloud
0 głosów
726 wizyt
pytanie zadane 14 sierpnia 2016 w JavaScript przez Kamil Naja Nałogowiec (27,410 p.)

Cześć, poproszę o ocenę kodu i wskazanie błędów w moim kalkulatorze BMI - chodzi mi głównie o JS. Z góry dziękuję. 

http://codepen.io/KamilNaja/pen/WxPXYV

1 odpowiedź

+4 głosów
odpowiedź 14 sierpnia 2016 przez ScriptyChris Mędrzec (190,190 p.)
edycja 14 sierpnia 2016 przez ScriptyChris

Ode mnie następujące uwagi: 

  • zamiast w każdej funkcji pisać 'use strict'; zamknij całość w IIFE i daj na górze 'use strict'. Oprócz wyeliminowania powtarzalności, unikniesz tworzenia funkcji w globalnej przestrzeni
  • deklaruj funkcje w takiej kolejności, aby wywołanie było poniżej miejsca utworzenia funkcji. Pisząc funkcje w formie function statement JavaScript unosi je do góry. Sprawia to, że wywołując daną funkcję powyżej miejsca jej utworzenia będzie ok. Natomiast, jeśli zapiszesz daną funkcję w formie function expression i będziesz chciał ją wywołać zanim ją stworzysz (z przyzwyczajenia) to wystąpi w konsoli błąd. https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/function#Function_declaration_hoisting
  • staraj się unikać stylowania przez JavaScript => element.style. Zamiast tego dodawaj/usuwaj klasy zapisane w CSS
  • zamiast: 
    calculate.addEventListener("click", function () { validate();}, false);

    , wystarczy: 

    calculate.addEventListener("click", validate);

    Atrybut false jest wstawiany domyślnie. Natomiast do EventListenera możesz podać już gotową funkcję. Chyba, że chcesz obsłużyć kilka funkcji i przesłać dodatkowe argumenty, wtedy Twój zapis będzie ok. Tzn., teraz jest ok, ale można go skrócić :)

komentarz 14 sierpnia 2016 przez Kamil Naja Nałogowiec (27,410 p.)
Dziękuję, bardzo cenne uwagi.
1
komentarz 14 sierpnia 2016 przez xmentor Nałogowiec (49,520 p.)

A ode mnie kolejna uwaga:

  • onload - skrypt wystarcz dać przed zamknięciem znacznika body i wtedy nie trzeba wywoływać zdarzenia load i to jeszcze w tak brutalny sposób :( (oczywiscie ciało funkcji wyciągnąć a samą funkcje usunąć). onclick, onkeyup -> addEventListener 
komentarz 14 sierpnia 2016 przez Kamil Naja Nałogowiec (27,410 p.)
Dziękuję za wszystkie uwagi, poprawki zostały wprowadzone. Co do właściwej kolejności deklarowania funkcji, to dzięki temu udało mi się pozbyć wszystkich błędów w jslint :)

Podobne pytania

0 głosów
2 odpowiedzi 1,183 wizyt
pytanie zadane 6 sierpnia 2017 w Nasze projekty przez Cyborek Użytkownik (850 p.)
0 głosów
1 odpowiedź 139 wizyt
0 głosów
4 odpowiedzi 541 wizyt

92,551 zapytań

141,399 odpowiedzi

319,531 komentarzy

61,938 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...