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

Mój kurs javascriptu na youtube

Object Storage Arubacloud
+5 głosów
251 wizyt
pytanie zadane 14 lutego w Nasze projekty przez Piotrek2713 Mądrala (5,400 p.)

Witam wszystkich. Wczoraj nagrałem swój pierwszy w życiu kurs programowania na YouTube, który dzisiaj zmontowałem w i wrzuciłem na kanał. Pierwszy kurs dotyczy robienia timera, tego samego, o który pytałem tu na forum, tyle, że zoptymalizowałem go pod wieloma kątami (Porównałem zużycie procesora podczas działania timera i było trzykrotnie niższe). Każdy z takich kursów zamierzam dzielić na co najmniej 2 filmy.

Jeden z nich już jest na YouTube

Proszę o ocenę i wyrozumiałość. To mój pierwszy kurs i byłem trochę zestresowany i miałem problemy z montażem

2 odpowiedzi

+2 głosów
odpowiedź 15 lutego przez VBService Ekspert (254,260 p.)
edycja 16 lutego przez VBService

4minuta 22sekunda - trzeba było wyjaśnić, że nazwa zmiennej span wzięłaś się dlatego, że zdarzenie odnosi się do elementów html <span> w kodzie timer-a, choć może być dowolna zapisana nazwa tej zmiennej (dobrze jakby była zgodna z tzw. Konwencją nazewniczą)

7minuta 11sekunda - użycie return, to nie jest jak powiedziałeś "wrócenie do początku" (pomijam fakt, że nie sprecyzowałeś do jakiego początku, czego początku, dla początkujących może to nie być oczywiste, wręcz niezrozumiałe), tylko natychmiastowe opuszczenie funkcji, bo w przypadku użycia klawisza Delete lub Backspace dalsze wykonywanie kodu w funkcji jest bezcelowe, ponieważ przypisujemy początkową wartość do elementu, w tym przypadku "00".

7minuta 34sekunda - "taki zapis", powinieneś doprecyzować, że chodzi o regułę RegExp (Regular expressions)

12minuta 44sekunda - IMO, ta pomyłka w opisie działania funkcji slice() z podaną negatywną wartością powinna zostać poddana edycji, co skutkować będzie ponownym wgraniem materiału kursu na YT po jego poprawieniu.

  if (/^\d$/.test(e.key)) { // tylko cyfry
    const currentValue = span.textContent,
          inputValue = e.key;

    let newValue = parseInt(currentValue + inputValue);
    if (newValue > 99) newValue = newValue.toString().slice(-2);
    if (newValue > 59) newValue = inputValue;
    span.textContent = ('00' + newValue).slice(-2);
  }

span.textContent - zwraca wartość w postaci tekstu

currentValue + inputValue - łączymy wartość tekstową z wartością znaku klawisza (konkatenacja - concatenate

ten zapis sprawdza czy wartość jest 3 znakowa, jeżeli tak to zamienia wartość liczbową na string i przypisuje 2 ostanie znaki slice(-2) z liczby (ponieważ ciąg znaków w js-ie jest traktowany jak array i każdy znak ma swój indeks, to możemy używać funkcji do operowania na tablicach - w tym przypadku użycie: slice().

if (newValue > 99) newValue = newValue.toString().slice(-2);

można zapisać

let newValue = currentValue + inputValue;
if (newValue.length > 2) newValue = newValue.slice(-2);
if (parseInt(newValue) > 59) newValue = inputValue;

Sprawdź

const a = 992;
console.log(a.toString().slice(-2));
console.log(a.toString().substring(a.toString().length - 2));

const b = "123";
console.log(b.slice(-2));
console.log(b.substring(b.length - 2));

 

span.textContent = ('00' + newValue).slice(-2);

można zapisać

span.textContent = newValue.toString().padStart(2, '0'); // jeżeli newValue jest po praseInt
span.textContent = newValue.padStart(2, '0');

 


 

4minuta 36sekunda - robisz kurs w języku polskim, więc dobrze by było to przetłumaczyć i pokazać planszę w polskim języku, lub w obu językach, żeby zachować oryginalną treść (wiadomo, nie da się przetłumaczyć z obcego języka dosłownie)

15minuta 08sekunda - ponieważ wcześniej w kodzie wykonaliśmy parseInt

let newValue = parseInt(currentValue + inputValue);

dostępne wartości newValue po wykonaniu się

    if (newValue > 99) newValue = newValue.toString().slice(-2);
    if (newValue > 59) newValue = inputValue;

to: 1 nie 01, 2 nie 02, ..., 9 nie 09, 10, 11, ... 59.

po wykonaniu (konkatenacja - concatenate)

('00' + newValue)

mamy: 001 dla 1, ... 009 dla 9010 dla 10, ..., 059 dla 59 i po slice(-2)

('00' + newValue).slice(-2)

mamy: 01, ..., 0910, ..., 59.

16minuta 33sekunda - to nie jest zdarzenie dla przytrzymanego klawisza, tylko sam fakt wciśnięcia klawisza, wtedy kiedy programiście jest obojętne czy keydown, czy keyupKeypress - używanie w kodzie jest już nie zalecane.

BTW, klawisz przytrzymany 

document.addEventListener('keydown', function(e) {
  // Sprawdź, czy klawisz jest wciśnięty i także czy przytrzymywany
  if (e.repeat)
    console.log('Klawisz przytrzymany!', e.key);
  else
    console.log(e.key)
});

 

17minuta 24sekunda - właśnie odwrotnie, blokujemy domyślną akcję dla zdarzenia "keyup" na elemencie html, w tym przypadku <span> z ustawionym atrybutem contenteditable="true", bo kod funkcji (formatNumbers) przypisanej do zdarzenia "keyup" opisuje nowe zachowanie się (nową, inną akcję) w odpowiedzi na zdarzenie.

e.preventDefault();

 

komentarz 15 lutego przez Piotrek2713 Mądrala (5,400 p.)
Ok, dzięki za wyjaśnienie błędów
1
komentarz 15 lutego przez VBService Ekspert (254,260 p.)

Mimo wszystko gratuluję pomysłu i ochoty na wykonanie takie projektu jak kurs. smiley

komentarz 15 lutego przez Piotrek2713 Mądrala (5,400 p.)

Dzieki! smiley

1
komentarz 15 lutego przez VBService Ekspert (254,260 p.)

Patrz na odpowiedź, dodałem nowy zapis. wink

0 głosów
odpowiedź 15 lutego przez El Lirón Obywatel (1,320 p.)
A sprawdzę z ciekawości :)

Podobne pytania

0 głosów
2 odpowiedzi 237 wizyt
pytanie zadane 16 grudnia 2023 w Nasze poradniki przez wizarddos Nałogowiec (25,930 p.)
+1 głos
0 odpowiedzi 268 wizyt
pytanie zadane 4 marca 2022 w Nasze projekty przez norbertc Początkujący (410 p.)
+4 głosów
1 odpowiedź 348 wizyt

92,617 zapytań

141,466 odpowiedzi

319,783 komentarzy

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

...