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

[JS] Kalkulator bez "eval"

VPS Starter Arubacloud
+2 głosów
590 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 847 wizyt
pytanie zadane 9 lipca 2017 w JavaScript przez Ziken Początkujący (330 p.)
+3 głosów
4 odpowiedzi 387 wizyt
pytanie zadane 25 czerwca 2018 w Nasze projekty przez Danrox Bywalec (2,370 p.)
+1 głos
3 odpowiedzi 1,204 wizyt

92,454 zapytań

141,262 odpowiedzi

319,089 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...