Seminarul de fațӑ ȋși propune familiarizarea studentului cu limbajul de programare JavaScript, prin introducerea urmӑtoarelor noțiuni:
Se va utiliza ȋn cadrul seminarului un interpretor de Javascript (NodeJS) disponibil online:
Sau se poate utiliza direct bash-ul, dupӑ cum este prezentat mai jos:
$ node > console.log("Bine ați venit la seminarul de Introducere ȋn Informaticӑ!")
Alte resurse online de studiu:
JavaScript, ca si Python este tot un limbaj in care variabilele sunt tastate dinamic. Toate variabilele se incadreaza in următoarele primitive:
sau compuse Object.
Array si Function sunt sub tipuri ale Object.
De retinut ca in Javascript functiile sunt tot un tip de date. Ex:
var afiseaza = function(){ console.log(“Hello World”) }
Dar se poate folosi și o scriere similară cu cea din C
function afiseaza(){ console.log(“Hello World”) }
In Javascript toate numerele sunt stocate ca numere cu virgula mobila sub denumirea de tip Number.
// Sintaxa aferentӑ declarӑrii unui numӑr ȋntreg myInt = 7 // Sintaxa aferentӑ declarӑrii unui numӑr real myFloat = 7.1 //ambele numere for fi stocate ca float dar putem verifica daca un numar este intreg //cu Number.isInteger(variabila) if( Number.isInteger(myInt) ) console.log( "this number is an integer" )
String-urile se pot defini fie utilizȃnd apostrofuri, fie ghilimele ca si in python.
myString = 'hello' myString = "hello"
suma = a + b
hello = "hello" world = "world" message = hello + " " + world
# Asta va funcționa desi in python nu functioneaza! one = 1 two = 2 three = 3 hello = "hello" console.log (one + two + three + hello);
Array-urile / Listele pot conține orice tip de variabilӑ/-e, iar numӑrul elementelor pe care ȋl conțin este variabil și nerestrictiv. Listele pot fi de asemenea iterate ȋntr-o manierӑ foarte simplӑ, dupӑ cum este prezentat ȋn exemplul de mai jos:
# Se declarӑ lista. mylist = [] # Se insereazӑ elementele ȋn listӑ. mylist.push(1) mylist.push(2) mylist.push(3) # Se afișeazӑ element cu element conținutul listei. console.log( mylist[0] ) console.log( mylist[1] ) console.log( mylist[2] ) # Outputul va arӑta cam așa: 1 2 3
La fel ca și ȋn alte limbaje de programare, elementele din listӑ sunt indexate ȋncepȃnd cu 0, nu cu 1.
// Se afișeazӑ element cu element conținutul listei, utilizȃnd o structurӑ repetitivӑ de tip "for". for (value of mylist): console.log(value) // Outputul va arӑta cam așa: 1 2 3 // sau direct console.log(mylist) // // de asemenea in JavaScript array-urile mai au si o metoda forEach care primeste o functie ce poate fi apelata pentru fiecare element mylist.forEach( function(value,index ){ //in javascript putem crea functii anonime atunci cand este nevoie //nu e nevoie sa ne definim in prealabil functia, o putem crea pe moment unde este necesara console.log("mylist["+index+"] e "+value); } );
Un obiect de tip Map din Javascript ese similar unui dicționar din python unde orice cheie este un sir de caractereMap. Singura diferenta e ca in JavaScript si functiile sunt tipuri de variabila asa ca acest dictionar poate sa retina si metode. In plus Map nu are cheile restricionate la siruri de caractere, chei poti fi orice tip de variabila inclusiv obiecte.
Cum se declarӑ un dicționar?
optionalRepartizare = new Map() optionalRepartizare.set("Ana","Grafica inginereasca")
Cum se parcurg elementele unui Map?
Aici exista mai multe metode dar probabil cea mai usoara ramane metoda forEach
optionalRepartizare.forEach(function(value,key){ console.log(key,value); }); //ca si in cazul array-urile aceasta metoda primeste o functie ce va fi apelata pentru fiecare obiect
Cum se eliminӑ valori dintr-un Map?
optionalRepartizare.delete("Ana")
nume = "Madalina" varsta = 34 if ( nume == "Madalina" && varsta == 34 ) console.log( "Numele tau este Madalina si ai 34 de ani." ) if ( nume == "Madalina" || varsta == 34 ) console.log( "Numele tau este Madalina si ai 34 de ani." )
Operatorul ”!” sau operatorul de negare inverseazӑ valoarea de adevӑr a expresiei sau a variabilei.
variabila = true // Secvența urmӑtoare va afișa valoarea de adevӑr "False" console.log ( !variabila );
Ȋn general, declarațiile sunt executate secvențial: prima declarație dintr-o funcție este executatӑ prima, urmatӑ de a doua, și tot așa. Pot exista situații ȋn care este necesarӑ execuția unui bloc de instrucțiuni ȋn repetate rȃnduri. Limbajele de programare oferӑ variate structuri de control ce permit cai pentru execuția unor bucӑți mai complicate de cod.
Buclele permit execuția unor declarații sau unor grupuri de declarații de mai multe ori.
Javascript oferӑ urmӑtoarele tipuri de bucle/structuri repetitive:
Structura repetitivӑ “for” din JavaScript are 3 variante
for(declaratie;conditie;pas) similara cu cea din C
for(valoare of array)
for(index in array) sau proprietate in obiect
listaDeNume = ["Ana", "Maria", "Ioana", "Irina", "Andreea", "Cristina"] for (var i =0; i<listaDeNume.length; i++){ console.log(listaDeNume[i]); } //sau for (var nume of listaDeNume){ console.log(nume); } //sau for (var i in listaDeNume){ console.log(listaDeNume[i]); }
Structura repetitivӑ “while” se executӑ atȃt timp cȃt condiția indicatӑ este respectatӑ. Este similarӑ unei declarații de tip “if”, ȋnsӑ bucla “while” se va opri ȋn momentul ȋn care condiția enunțatӑ nu va mai fi ȋndeplinitӑ. Cu alte cuvinte, se va verifica “cȃt timp” este valabilӑ condiția respectivӑ, și nu “dacӑ” ea este validӑ. De exemplu, dorim sӑ afișӑm cifrele de la 0 la 9.
count = 0 while(count < 10){ console.log(count) count++ }
Declarația “break” este utilizatӑ pentru a ieși dintr-o structurӑ repetitivӑ; este o alternativӑ la condiția de ieșire. De exemplu, dorim sӑ afișӑm cifrele de la 0 la 9.
count = 0 while(true){ console.log(count) count = count + 1 if(count > 10) break }
Declarația “continue” este utilizatӑ pentru a sӑri peste un bloc de instrucțiuni. De exemplu, dorim sa afișӑm toate numerele pare din intervalul [0, 20].
number = 0 while(number < 21){ if( number % 2 == 1 ) continue console.log(number) }
Ce sunt funcțiile?
Funcțiile sunt o metodӑ convenabilӑ de partiționare a codului ȋn blocuri organizate ce faciliteazӑ gestionarea acestuia. De asemenea in JavaScript functiile sub obiecte si implicit pot fi stocate in variabile ca orice at timp de data..
Cum se declarӑ funcțiile?
Ȋn Javascript , funcțiile sunt definite folosind cuvȃntul cheie function argumente si codul functiei similar cu C/C++. De exemplu:
function functiaMea(){ console.log("Bine ati veni la cursul de introducere in informatica!") } //sau var functiaMea = function(){ console.log("Bine ati veni la cursul de introducere in informatica!") }
De asemenea, o funcție poate primi argumente (variabile trimise ca parametru de cӑtre “apelant” funcției). Mai mult, funcțiile pot returna rezultate. Exemplul de mai jos reprezintӑ o funcție ce primește ca parametri douӑ numere și returneazӑ suma acestora.
var sumaNumerelor = function( a, b){ return a + b }
Functii anonime
Spre deosebire de alte limbaje in JavaScript o functie poate fi definita doar acolo unde este nevoie in caz ca nu mai trebuie refolosita.
var suma = function(a,b){return a+b;}(1,2) // in aceasta situatie se va genera functia si va fi apelata pe loc pentru valorile a=1 b=2
Acest lucru este util in JavaScript cand unul din argumentele unei functii/metode asteapta alta functie. De exemplu o filtrare peste un arary
var ar = [2,9,11,14] console.log( ar.filter(function(value){ if( value % 2 == 0) return true; else return false; }) ); // acest cod paseaza o functie care returneaza true sau false in functie de paritatea argumentului // astfel array ar va fi filtrat si se va returna un array ce contine daor elementele pare din ar
Din moment ce functia este un tip de variabila optiunile sunt nelmitate. De exemplu
// o functie care primeste un numar si verifica paritatea var estePar = function( numar ){ if(numar%2 == 0) return true; return false; } // o functie care primeste un nume de functie si un argument // si apeleaza functia cu acel argument var apeleazaFunctie = function( functeDataDeMine, argument ){ return functeDataDeMine(argument) } // parcurge cu un for numerele de la 0 la 4 // si apeleaza functia este par pentru fiecare i for(var i = 0; i<5; i++) if( apeleazaFunctie( estePar, i) ){ console.log(i + " este par ") } else { console.log(i + " este impar ") }
Un obiect din Javascript ese similar unui dicționar din python unde orice cheie este un sir de caractere. Singura diferenta e ca in JavaScript si functiile sunt tipuri de variabila asa ca acest dictionar poate sa retina si metode
Cum se declarӑ un dicționar?
optionalRepartizare = {} optionalRepartizare ["Ana"] = "Grafica inginereasca" //sau optionalRepartizare.Andrei = "Introducere in informatica" //dar si optionalRepartizare.salut = function(){ console.log("salut) }
De asemenea:
optionalRepartizare = { "Ana" : "Grafica inginereasca", "Andrei" : "Introducere in informatica", "salut" : function(){ console.log("salut) } } // functia se apealeaza prin optionalRepartizare.salut()
Cum se parcurg elementele unui obiect?
Obiectele pot fi iterate cu ajutorul structurei “for .. in” ce returneaza indexii din obiect
optionalRepartizare = { "Ana" : "Grafica inginereasca", "Andrei" : "Introducere in informatica", "Radu" : "Grafica inginereasca", "Serban" : "Mecanica", "Roxana" : "Introducere in informatica" } for (var numeStudent in optionalRepartizare ) console.log( numeStudent, optionalRepartizare[numeStudent])
Cum se eliminӑ valori dintr-un obiect?
delete optionalRepartizare["Ana"]
Din moment ce aceastea nu sunt Dictionare propriu zise ci obiecte numarul de functii si metode predefinite este limitat
0735
).