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

[JS] Kalkulator bez "eval"

Object Storage Arubacloud
+2 głosów
595 wizyt
pytanie zadane 30 lipca 2017 w Nasze projekty przez Ziken Początkujący (330 p.)

Witam,

Niedawno skończyłem pisać kalkulator. Napisałem już go wcześniej ale kod był tragiczny więc postanowiłem zrobić code refactoring oraz dodałem kilka funkcji. Starałem aby kod był czytelny oraz poprawnie napisany (różnie to bywa). Proszę o ocenę aplikacji jak i kodu

Taktyczny link do gita

komentarz 30 lipca 2017 przez piotrek132 Obywatel (1,410 p.)
jak zmienie znak wyniku obliczeń, kasuje mi ten wynik
np 7+2 = 9 klikam +/- i kasuje
komentarz 30 lipca 2017 przez Ziken Początkujący (330 p.)

jak zmienie znak wyniku obliczeń, kasuje mi ten wynik

Nie kasuje wyniku, zapisuje go do następnych operacji. Zobacz nad input-em, on tam się pojawia.

komentarz 30 lipca 2017 przez Eryk Andrzejewski Mędrzec (164,260 p.)

Przydałaby się możliwość obsługi przy pomocy klawiatury wink

1
komentarz 30 lipca 2017 przez Ziken Początkujący (330 p.)

Przydałaby się możliwość obsługi przy pomocy klawiatury

Jest smiley, tylko musi być focus na input albo na jakiś button 

1 odpowiedź

+1 głos
odpowiedź 31 lipca 2017 przez rafal.budzis Szeryf (85,260 p.)

Zawsze jest coś do poprawy chociaż kodzik jest spoczko (przynajmniej cześć którą widziałem ;D) Można dopisać JS DOCa dla każdej funkcji ;) 

Ale przed tym poszukaj co masz w komentarzach w większości przypadków komentarze są tam gdzie jest coś nie czytelnego ;)

NP https://github.com/Ziken/Calculator/blob/master/scripts/CalculatorInterface.js#L17-L22

Zamienił bym na 

    const OPERATIONS_SIGN = {
        multiplication: '*',
        division: '/', 
        addition: '+',
        subtraction: '-'
    };

A tu już mamy spory błąd. 

https://github.com/Ziken/Calculator/blob/master/script.js#L1-L4

Nigdzie nie używasz this dlatego nie jest to klasa i bez sensu jest późniejsze wywołanie z new 

https://github.com/Ziken/Calculator/blob/master/script.js#L433-L434

Początek zmień na taki kod :

"use strict";

var Calculator = function (element) {
    
    let self = this;
    self.element = element;

wtedy będzie działać obiektowość ;) Chociaż lepiej by było poczytać o prototypach i troszkę zmienić ten kod .

1
komentarz 31 lipca 2017 przez ScriptyChris Mędrzec (190,190 p.)
let self = this;

Jeśli już, to const lepiej pasuje.

W ogóle, dużą ilość let warto, w kodzie tej apki, zamienić na const.

komentarz 31 lipca 2017 przez rafal.budzis Szeryf (85,260 p.)
@Krzycho92 W sumie jeśli robimy już w ES6 to warto by dopisać klasy ;)
komentarz 31 lipca 2017 przez Ziken Początkujący (330 p.)
Ten kod z "self" to jest pierwsza wersja. Postanowiłem ją zmienić bo była nieczytelna. Zrobiłem drugą wersję która jest w folderze "scripts" którą podzieliłem na osobne moduły.

Podobne pytania

+2 głosów
3 odpowiedzi 853 wizyt
pytanie zadane 9 lipca 2017 w JavaScript przez Ziken Początkujący (330 p.)
+3 głosów
4 odpowiedzi 388 wizyt
pytanie zadane 25 czerwca 2018 w Nasze projekty przez Danrox Bywalec (2,370 p.)
+1 głos
3 odpowiedzi 1,237 wizyt

92,551 zapytań

141,393 odpowiedzi

319,522 komentarzy

61,936 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!

...