Tutorialul de bază JavaScript
Bazele
Introducere
Pornirea JavaScript
Primul program în JavaScript
Analiza codului programului
Exemple ulterioare
Fișiere cu scripturi
Mai multe fișiere
Notă
Cache-ul fișierelor
Modul strict
Comentarii
Variabile
Utilizarea variabilelor
Declararea mai multor variabile
Modificarea valorilor variabilelor
Mai multe let pentru o singură variabilă
Operații matematice cu numere
Operații matematice cu variabile
Prioritatea operațiilor matematice
Prioritate egală
Paranteze de grupare
Fracții
Numere negative
Plus în fața variabilelor
Restul împărțirii
Ridicarea la putere
Prioritatea ridicării la putere
Șiruri de caractere
Adunarea șirurilor de caractere
Lungimea șirului de caractere
Șiruri de șablon
Multi-linia
Valori speciale
Valoarea undefined
Valoarea null
Valorile true și false
Valoarea NaN
Infinity și -Infinity
Consolă
Tipul de date în consolă
Erori în consolă
Constante
Conversia automată a tipurilor
Conversia la număr
Conversia scurtă la număr
Conversia numerelor incorecte
Extragerea numerelor
Conversia la șir de caractere
Aplicarea conversiei la șir de caractere
Conversia tipului logic
Conversia la tipul logic
Caracterele șirului
Imuabilitatea șirurilor
Ultimul caracter al șirului
Șiruri cu cifre
Accesarea cifrelor unui număr
Operații pentru modificarea variabilei
Operații prescurtate în JavaScript
Incrementare
Tipul prefix și postfix
Calcule inexacte
Funcția prompt
Problema cu tipurile în prompt
Afișarea în document
Practică pentru găsirea erorilor
Practică pe operații
Practică pe formule
Array-uri
Introducere în array-uri
Obținerea elementelor
Lungimea array-ului
Modificarea elementelor
Rescrierea elementelor array-ului
Incrementarea elementelor
Adăugarea elementelor după chei
Array-uri rare
Adăugarea elementelor prin push
Chei din variabile
Operatorul delete
Practică în găsirea greșelilor
Obiecte
Introducere în obiecte
Afișarea întregului obiect
Chei de obiecte ca șiruri de caractere
Proprietățile obiectelor
Restricții pentru cheile obiectelor
Modificarea elementelor
Adăugarea elementelor
Neprodinuitatea obiectelor
Tablou de chei ale obiectului
Lungimea obiectului
Chei din variabile
Eroare la accesarea elementului
Eroare la accesarea proprietății
Proprietăți calculate
Operatorul in
Operatorul delete
Tipizarea obiectelor
Tabourile ca obiecte
Deosebim tabourile de obiecte
Obiecte și primitive
Transmiterea obiectelor prin referință
Constante
Abordarea programării prin constante
Practică pentru găsirea erorilor
Condiții
Construcția if-else
Operatori mai mare și mai mic
Verificarea egalității
Verificarea inegalității
Compararea variabilelor
Egalitatea șirurilor de caractere
Egalitatea șirurilor și numerelor
Egalitate prin valoare și tip
Inegalitate prin valoare și tip
ȘI logic
SAU logic
Prioritatea operatorilor logici
Gruparea condițiilor
Inversarea expresiilor logice
Condiții cu valori booleene
Compararea valorilor cu tipul boolean
Forma prescurtată de verificare a adevărului
Forma prescurtată de verificare a falsului
Forma prescurtată generală de verificare
Condiții complexe în formă prescurtată
Opționalitatea construcției else
Opționalitatea acoladelor
Problema opționalității parantezelor
Construcția else if
Construcții if-else imbricate
Construcția switch-case
Opționalitatea break
Operatorul ternar
Operații logice
Funcția confirm
Domeniul de vizibilitate
Nuanțe ale domeniului de vizibilitate
Verificarea părților orei
Verificarea lungimii șirurilor și a array-urilor
Verificarea caracterelor șirului
Verificarea cifrelor numărului
Verificarea restului împărțirii
Practică pentru găsirea greșelilor
Practică
Bucle
Introducere
Bucla for-of
Bucla for-in
Bucla while
Bucla for
Bucla for pentru array-uri
Condiții în bucle
Acumularea sumei numerelor
Acumularea sumei elementelor
Formarea șirurilor de caractere
Cifrele unui număr
Caracterul opțional al acoladelor
Problema caracterului opțional al acoladelor
Instrucțiunea break
Instrucțiunea continue
Bucle imbricate
Domeniul de vizibilitate
Bucle imbricate și domeniul de vizibilitate
Umplerea array-urilor
Modificarea array-urilor
Umplerea obiectelor
Modificarea obiectelor
Lucrul cu flag-uri
Sfaturi pentru scrierea codului
Sfaturi pentru depanarea codului
Practică pentru găsirea erorilor
Practică
Multidimensionalitate
Array-uri multidimensionale
Array tridimensional
Array-uri arbitrare
Iterarea array-urilor multidimensionale
Iterarea cu for obișnuit
Umplerea array-urilor multidimensionale
Probleme la umplerea array-urilor multidimensionale
Umplerea array-urilor multidimensionale în ordine
Obiecte multidimensionale
Iterarea obiectelor multidimensionale
Structuri multidimensionale
Iterarea structurilor multidimensionale
Array de obiecte
Chei din variabile
Adăugarea elementelor în array-uri
Adăugarea elementelor în obiecte
Metode standard
Puteri
Funcții de rotunjire
Extreme
Numere aleatorii
Modul
Majuscule și minuscule
Extragerea subșirurilor
Căutarea în șiruri
Înlocuirea în șiruri
Împărțirea șirurilor
Elemente de la capete
Părți ale tablourilor
Extragerea din tablouri
Căutarea în tablouri
Cheile obiectelor
Practică în găsirea erorilor
Funcții personalizate
Introducere
Parametrii funcției
Mai mulți parametri
Parametrii-variabile
Parametrii opționali
Instrucțiunea return
Apelarea secvențială a funcțiilor
Nuanța subtilă a lui return
Bucla și return
Aplicarea lui return în bucle
Metodă de lucru cu return
Steaguri în funcții
Operatori logici în funcții
Sfaturi pentru funcții
Practică pentru găsirea greșelilor
Practică pentru funcții
Variabilele funcțiilor
Variabile globale
Variabile locale
Coincidența numelor de variabile
Modificarea variabilelor globale
Variabile globale și parametrii funcțiilor
Coincidența numelor cu parametrii
Parametrii-obiecte
Tipuri de funcții
Codul sursă al funcției și rezultatul
Funcția ca variabilă
Scrierea funcției într-o altă variabilă
Atribuirea funcțiilor în variabile
Coincidența numelui funcției și a variabilei
Tipuri de declarații
Diferența declarațiilor funcției
Punct și virgulă la declararea funcțiilor
Nuanțe ale expresiilor funcționale
Funcție cu nume, dar Expression Function
Expresii funcționale denumite
Cum se verifică tipul unei funcții
Expresia din stânga
Expresia din dreapta
Array cu funcții
Obiect cu funcții
Aplicarea obiectului cu funcții
Funcții imbricate
Transmiterea funcțiilor ca parametri
Funcții denumite
Parametrii funcțiilor transmise
Transmiterea numărului ca parametru
Aplicare
Funcții interne
Domeniul de vizibilitate al funcțiilor imbricate
Parametrii funcției exterioare
Parametrii funcțiilor exterioare și interioare
Parametrii cu același nume
Funcție care returnează o funcție
Orice nivel de imbricare
Parametrii funcției returnate
Funcții callback
Nuanțe ale callback-urilor
Funcții săgeată
Aplicarea funcțiilor săgeată
sinc. cu traducerea
Închideri
Acces la variabilele exterioare
Mediul lexical al funcțiilor
Aplicarea mediului lexical
Introducere în închideri
Contor pe baza de închideri
Nuanță variabilă locală
Nuanță variabilă globală
IIFE
Apelarea funcției imediat
Atribuirea funcției unei variabile
Aplicarea apelării funcției imediat
Paranteze rotunde
Parametrii
Apeluri multiple
Capcane
Punct și virgulă pentru siguranță
Închideri și IIFE
Recursie
Introducere
Exemplu cu parametru
Suma elementelor array-ului cu recursie
Structuri multidimensionale
Suma elementelor array-ului
Manipulări cu structuri
Metode de iterare
Metoda map
Metoda forEach
Metoda filter
Metoda every
Metoda some
Metoda find
traducere, probleme
Metoda reduce
traducere, probleme
Operatorul spread
Introducere
Exemple mai complexe
Valori extreme ale array-ului
Unirea array-urilor
Împărțirea șirurilor
Împărțirea numerelor
Operatorul rest
Destructurare
Destructurarea array-urilor
Array din funcție
Omiterea elementelor array-ului
Valori excesive în array
Restul array-ului
Valori implicite pentru array-uri
Funcții implicite pentru array-uri
Declararea variabilelor pentru array-uri
Destructurarea obiectelor
Numele variabilelor pentru obiecte
Valori implicite pentru obiecte
Variabile și valori implicite pentru obiecte
Declararea variabilelor pentru obiecte
Parametrii funcțiilor
Destructurarea obiectelor parametrilor funcțiilor
Timp
Lucrul cu obiectul Date
Formatare
Schimbarea formatului datei
Obținerea zilei săptămânii
Afișarea datei cu cuvinte
Setarea orei
Formatul timestamp
Diferența dintre timestamp
Diferența obiectelor cu date
Corectarea automată a datelor
Găsirea ultimei zile a lunii
Determinarea anului bisect
Verificarea corectitudinii
Obținerea zilei din anul curent
Ziua lunii următoare sau precedente
Ziua anului următor sau precedent
Diferența momentelor
Momentul de timp al zilei
Începutul zilei
Sfârșitul zilei
Verificarea ciclică a momentelor de timp
Practică pentru obținerea momentelor de timp
Compararea ca șir de caractere
Compararea datei fără an
Includerea datei într-un interval
Compararea obiectelor cu dată
Introducere în DOM
Introducere
Elemente DOM
Obținerea elementelor DOM
Selectoare complexe pentru elemente DOM
Legarea handlerelor
Handlere denumite
Un handler pentru mai multe elemente
Handlere pentru același eveniment
Handlere pentru evenimente diferite
Textul elementului
Codul HTML al elementului
Atributele tagurilor ca proprietăți
Lucrul cu câmpuri text
Focusul câmpurilor text
Atribute-excepție
Lanțuri de metode și proprietăți
Avantaje și dezavantaje ale lanțurilor
Obiectul this
Avantajul this
Obținerea unui grup de elemente
Handlere denumite în buclă
Handlere anonime în buclă
Dezlegarea handlerelor de evenimente
Dezlegarea handlerelor în buclă
Dezlegarea handlerelor anonime
Sfaturi pentru scrierea codului
Practică pentru găsirea greșelilor
Practic
Atribute
Metoda de obținere a atributelor
Metoda de setare a atributelor
Metoda de eliminare a atributelor
Metoda de verificare a atributelor
Atribute personalizate
Nume de atribute cu cratime
Accesarea atributelor prin metode
Matrice de clase CSS
Adăugarea claselor CSS
Eliminarea claselor CSS
Verificarea claselor CSS
Comutarea claselor CSS
Stilizare
Stilizare prin atributul style
Stilizarea proprietăților cu cratimă
Excepție la stilizarea elementelor
Stilizare prin clase CSS
Avantajul stilizării cu clase CSS
Aplicarea stilizării
Căutare
Găsirea descendenților elementelor
Găsirea părinților elementelor
Căutarea tuturor părinților elementelor
Căutarea vecinilor elementelor
Căutarea elementului după id
Căutarea elementului după numele tag-ului
Căutarea elementului după numele clasei
Căutarea în interiorul elementului
Noduri
Formulare
Lucrul cu textarea
Blocarea elementelor
Lucrul cu checkbox-uri
Alternarea atributelor fără valori
Lucrul cu butoanele radio
Evenimentul change
Evenimentul input
Metodele focus și blur
Practică în găsirea greșelilor
Liste drop-down
Lucrul cu liste drop-down
Atributul value în liste drop-down
Modificarea elementului selectat din listă
Numărul elementului selectat din listă
Obținerea elementelor listei drop-down
Elementele ca array
Lucrul cu elementele listei drop-down
Selectarea elementului din listă
Obținerea elementului selectat
Obiectul Event
Bazele lucrului cu obiectul Event
Coordonatele evenimentului
Tipul evenimentului
Elementul evenimentului
Obținerea tastelor apăsate
Urmărirea tastelor-modificatoare
Anularea acțiunii implicite
Burbuirea evenimentelor
Elementul țintă la burbuire
Oprirea burbuirii evenimentelor
Mai mulți manipulatoare pe element
Oprirea imediată a burbuirii
Aplicarea opririi burbuirii evenimentelor
Scufundarea evenimentelor
Manipulatoare pe elemente noi
Delegarea evenimentelor
Delegarea universală a evenimentelor
Context
Noțiuni de bază despre context
Contextul unei funcții nelegate
Pierderea contextului
Rezolvarea problemei cu contextul
Soluția prin variabilă
Soluția prin parametru
Soluția prin funcția săgeată
Metoda call
Metoda call cu parametri
Metoda apply
Metoda bind
Timeri
Pornirea unui timer
Contor pe un timer
Oprirea unui timer
Butoane pentru pornire
Pornire multiplă
Butoane pentru oprire
Lucrul cu DOM
Timere și pierderea contextului
Practică pe timere și DOM
Întârziere înainte de execuție
Timer prin întârziere
Manipularea elementelor
Crearea și inserarea elementelor
Atasarea evenimentelor la inserare
Crearea elementelor în buclă
Atasarea handlerelor în buclă
Eliminarea elementelor
Inserare la margine
Inserare înainte
Inserare adiacentă
Inserarea adiacentă a tagurilor
Clonarea elementelor
Verificarea elementelor
Exercițiu practic
Crearea elementelor dintr-un array
Exercițiu practic pe crearea listelor ul
Crearea tabelelor
Umplerea consecutivă a tabelelor
Crearea tabelului dintr-un array
Crearea tabelului dintr-un array de obiecte
Adăugarea rândurilor și coloanelor în tabel
Modificarea celulelor tabelului
Ștergerea elementelor noi
Link pentru ștergerea elementului
Crearea linkurilor pentru ștergere
Editarea elementului individual
Ascundem textul la editare
Editarea în setul de elemente
Ștergerea și editarea
Stilizarea elementelor
Butoane pentru ascunderea și afișarea elementului
Multe elemente cu butoane de afișare
Activarea elementelor
Alternarea stilurilor de activare
Exercițiu practic pe modificarea elementelor
Funcții și DOM
Funcții pentru lucrul cu elementul DOM
Funcții pentru lucrul cu un grup de elemente
Transmiterea unui callback pentru lucrul cu DOM
Transmiterea numărului de ordine în callback
Transmiterea elementului ca parametru al funcției
Transmiterea grupului de elemente ca parametri
Funcție pentru crearea tabelelor HTML
Returnarea tabelului din funcție
Funcție pentru crearea tabelului dintr-un array