This shows you the differences between two versions of the page.
|
cpl-atm:laboratoare:laborator2 [2013/10/18 10:29] alexandru.radovici |
cpl-atm:laboratoare:laborator2 [2013/10/31 08:01] (current) alexandru.radovici |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Laborator 2 ====== | + | ====== Laborator 2 - Introducere in NodeJS ====== |
| Introducere in NodeJS | Introducere in NodeJS | ||
| Line 49: | Line 49: | ||
| Pentru laboratorul de astazi avem nevoie de biblioteca //dict//. Vom instala biblioteca in directorul curent la momentul potrivit. | Pentru laboratorul de astazi avem nevoie de biblioteca //dict//. Vom instala biblioteca in directorul curent la momentul potrivit. | ||
| + | |||
| + | <code> | ||
| + | npm install dict | ||
| + | </code> | ||
| + | |||
| + | ===== IDE ===== | ||
| + | NodeJS este doar compilatorul, asa ca pentru scrierea programelor aveti nevoie de un alt program. Puteti folosi orice program, noi recomandam: | ||
| + | |||
| + | * SublimeText | ||
| + | * Nodepad++ | ||
| + | * Vim | ||
| + | |||
| + | ===== Rularea programelor ===== | ||
| + | Aveti nevoie de un terminal pentru a rula programele. NodeJS este similar cu //python// in acest sens. Un program se porneste folosind comanda: | ||
| + | |||
| + | <code> | ||
| + | node fisier_program.js | ||
| + | </code> | ||
| + | |||
| + | In Windows, proniti un terminal folosind comanda cmd.exe (atentie, nu rulati direct node.exe, acesta nu va executa un program, va pornit doar NodeJS in modul interactiv - adica asteapta instructiuni de javascript). | ||
| + | |||
| + | ===== Limbajul ===== | ||
| + | Sintaxa limbajului este similara cu cea din C. Variabilele au tip dinamic, adica tipul lor se schimba in functie de ce anume memoreaza. | ||
| + | ==== Scrierea pe ecran ==== | ||
| + | Pe ecran se poate afisa folosind functiile //console.log()// si //console.error ()//. Care este diferenta dintre acestea doua? | ||
| + | <hidden> | ||
| + | console.log afiseaza pe stdout | ||
| + | console.error afiseaza pe stderr | ||
| + | </hidden> | ||
| + | |||
| + | Exemplu: | ||
| + | <code javascript> | ||
| + | console.log ('Hello from NodeJS'); | ||
| + | </code> | ||
| + | |||
| + | ==== Declararea variabilelor ==== | ||
| + | Variabilele se declara folosind cuvantul cheie //var//. | ||
| + | |||
| + | <code javascript> | ||
| + | var a; | ||
| + | var b; | ||
| + | </code> | ||
| + | |||
| + | ==== Valorile speciale ale variabilelor ==== | ||
| + | In Javascript exista trei tipuri de valori speciale, diferite una de alta. | ||
| + | |||
| + | * //undefined// - este valoarea unei variabile care nu a primit niciodata valoare | ||
| + | * //null// - este valoarea echivalenta cu NULL din C, insa este diferita de valoarea 0 sau valoarea //undefined// | ||
| + | * //false// - este valoarea falsa din C, diferita de 0, //null// si //undefined// | ||
| + | * //true// - este valoarea adevarata | ||
| + | |||
| + | <note> | ||
| + | //false// != //null// != //undefined// != 0 | ||
| + | </note> | ||
| + | |||
| + | ==== Siruri de caractere ==== | ||
| + | Sirurile de caractere se scriu intre ghilimele //"// sau aprostroafe //'//. Acestea se pot concatena folosind //+//. | ||
| + | |||
| + | Exemplu: | ||
| + | <code javascript> | ||
| + | var a = 'Programam in'; | ||
| + | var b = a + " Javascript"; | ||
| + | |||
| + | console.log (b); | ||
| + | </code> | ||
| + | |||
| + | ==== Declararea functiilor ==== | ||
| + | Functiile sunt similare cu cele din C, insa nu au un tip de intoarcere bine definit. O functie se declara folosind cuvantul cheie //function// urmat de numele functiei, paranteza deschisa, lista de parametrii, paranteza inchisa urmata de coldul functiei intre acolade. | ||
| + | |||
| + | |||
| + | Exemplu: | ||
| + | <code javascript> | ||
| + | function egale (a, b) | ||
| + | { | ||
| + | if (a==b) return true; | ||
| + | else return false; | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | O functie poate intoarce orice tip de valoare. In functie de ce tip este scris dupa cuvantul //return//, functia va intoarce un tip sau altul. De asemenea, o functie intoarce mereu o valoare. Daca nu este folosit cuvantul //return// nicaieri, functie va intoarce //undefined//. | ||
| + | |||
| + | Exemplu: | ||
| + | <code javascript> | ||
| + | function afiseaza () | ||
| + | { | ||
| + | console.log ('afiseaza'); | ||
| + | } | ||
| + | |||
| + | var n = afiseaza (); | ||
| + | </code> | ||
| + | |||
| + | Variabila n va avea valoarea //undefined//. | ||
| + | |||
| + | ==== Siruri ==== | ||
| + | Sirurile sunt alocate dinamic in Javascript. Realizarea unui sir nou se face prin folosirea parantezelor drepte. Elementele dintr-un sir pot fi de tipuri diferite. | ||
| + | |||
| + | Exemplu: | ||
| + | <code javascript> | ||
| + | // un sir vid | ||
| + | var n = []; | ||
| + | |||
| + | // un sir cu elemente omogene | ||
| + | var n = [1,2,3]; | ||
| + | |||
| + | // un sir cu elemente neomegene | ||
| + | var n = [1, 'caractere', 10.5]; | ||
| + | </code> | ||
| + | |||
| + | Sirurile pot fi folosite ca stive prin folosirea functiilor //push// si //pop//. | ||
| + | |||
| + | * push adauga un element in sir | ||
| + | * pop scoate ultimul element din sir | ||
| + | |||
| + | Dimensiunea sirului poate fi obtinuta prin variabila //length//. | ||
| + | |||
| + | Exemplu: | ||
| + | <code javascript> | ||
| + | var a = [1,2,3]; | ||
| + | |||
| + | a.push (4); // adauga 4 la in sir | ||
| + | console.log (a); | ||
| + | |||
| + | var x=a.pop (); // scoate ultimul element din sir | ||
| + | console.log (x); | ||
| + | console.log (a); | ||
| + | |||
| + | console.log ('Sirul are '+a.length+' elemente'); | ||
| + | </code> | ||
| + | |||
| + | TODO matrici | ||
| + | |||
| + | ==== Structuri ==== | ||
| + | Spre deosebire de C, unde sructurile au un sablon prestabilit, in javascript structurile sunt dinamice. Acestea se declara folosind acolade. Se pot adauga si sterge dinamic membrii. | ||
| + | |||
| + | Exemplu: | ||
| + | <code javascript> | ||
| + | var faraelemente = {}; | ||
| + | |||
| + | var masa = | ||
| + | { | ||
| + | numarPicioare: 4, | ||
| + | tip: 'lemn', | ||
| + | culoare: 'verde', | ||
| + | eticheta: '' | ||
| + | }; | ||
| + | |||
| + | console.log (faraelemente); | ||
| + | console.log (masa); | ||
| + | </code> | ||
| + | |||
| + | Am declarat doua structuri: //faraelemente// este o structura fara membrii si //masa// o structura ce defineste o masa. Putem acum adauga membrii noi amandurora: | ||
| + | |||
| + | <code javascript> | ||
| + | faraelemente.membru = 'membru'; | ||
| + | masa.lungime= 300; | ||
| + | console.log (faraelemente); | ||
| + | console.log (masa); | ||
| + | |||
| + | delete masa.eticheta; | ||
| + | |||
| + | console.log (masa); | ||
| + | </code> | ||
| + | |||
| + | O structura poate contine ca mebrii siruri sau alte structuri: | ||
| + | |||
| + | <code javascript> | ||
| + | var scaun | ||
| + | { | ||
| + | tapiterie: ['albastru','galben','verde'], | ||
| + | culoare: 'portocaliu', | ||
| + | vazator: | ||
| + | { | ||
| + | firma: 'firma', | ||
| + | pret: 299 | ||
| + | } | ||
| + | }; | ||
| + | </code> | ||
| ===== Exercitii ===== | ===== Exercitii ===== | ||
| - | # Scrieti un program care va afiseaza numele pe ecran. | + | - Scrieti un program care va afiseaza numele pe ecran. |
| - | # Scrieti un program care defineste un sir si afiseaza sirul pe ecran. | + | - Scrieti un program care defineste un sir si afiseaza sirul pe ecran. |
| - | # Scrieti un program care defineste un sir si o functie care afiseaza sirul pe ecran. | + | - Scrieti un program care defineste un sir si o functie care afiseaza sirul pe ecran. |
| - | # Scrieti un program in care definiti o structura si ii afisati componentele. | + | - Scrieti un program in care definiti o structura si ii afisati componentele. |
| - | # Scrieti un program care defineste un dictionar si afiseaza componentele sale. | + | - Scrieti un program care defineste un dictionar si afiseaza componentele sale. |