SlideShare a Scribd company logo
Dr.SabinBuragawww.purl.org/net/busaco
Dr. Sabin Buraga
Facultatea de Informatică, Universitatea „A. I. Cuza” din Iași
www.purl.org/net/busaco  @busaco4web
esență de JavaScript pentru novici
Dr.SabinBuragawww.purl.org/net/busaco
Inventat de Brendan Eich (1995)
denumit inițial Mocha, apoi LiveScript
Oferit în premieră de browser-ul Netscape Navigator
Adaptat de Microsoft: JScript (1996)
Standardizat ca ECMAScript: ECMA-262 (1997)
www.w3.org/community/webed/wiki/A_Short_History_of_JavaScript
Dr.SabinBuragawww.purl.org/net/busaco
ECMAScript
versiunea standardizată actuală: 5.1 (iunie 2011)
www.ecma-international.org/publications/standards/Ecma-262.htm
versiunea în lucru: 6.0 – ES6 (în curând)
git.io/es6features
referința de bază: https://developer.mozilla.org/JavaScript
Dr.SabinBuragawww.purl.org/net/busaco
Limbaj de tip script (interpretat)
destinat să manipuleze, să automatizeze
și să integreze funcționalitățile
oferite de un anumit sistem
Dr.SabinBuragawww.purl.org/net/busaco
Limbaj de tip script (interpretat)
nu necesită intrări/ieșiri în mod implicit
Dr.SabinBuragawww.purl.org/net/busaco
Limbaj de tip script (interpretat)
dinamic
variabilele își pot schimba tipul
pe parcursul rulării programului
Dr.SabinBuragawww.purl.org/net/busaco
Mediu de execuție (host-environment)
navigator Web
permite rularea de aplicații Web la nivelul unei platforme
(un sistem de operare)
Dr.SabinBuragawww.purl.org/net/busaco
Mediu de execuție (host-environment)
navigator Web
permite rularea de aplicații Web la nivelul unei platforme
(un sistem de operare)
inclusiv pe dispozitive mobile: Android, iOS, Firefox OS,
Fire OS (Kindle Fire), Windows Phone,…
Dr.SabinBuragawww.purl.org/net/busaco
tehnologii Web disponibile (via JavaScript)
la nivel de browser – http://platform.html5.org/
Dr.SabinBuragawww.purl.org/net/busaco
Mediu de execuție (host-environment)
independent de navigatorul Web
platforme de dezvoltare de aplicații distribuite: Node.js
servere de baze de date – e.g., Apache CouchDB
componente ale sistemului de operare
aplicații de sine-stătătoare – e.g., Adobe Creative Suite
Dr.SabinBuragawww.purl.org/net/busaco
Câteva caracteristici importante?
Dr.SabinBuragawww.purl.org/net/busaco
Cuvinte rezervate:
break else new var case finally return void catch
for switch while continue function this with default
if throw delete in try do instanceof typeof
caracteristici: sintaxa
Dr.SabinBuragawww.purl.org/net/busaco
Alte cuvinte rezervate:
abstract enum int short boolean export interface
static byte extends long super char final native
synchronized class float package throws const
goto private transient debugger implements
protected volatile double import public
caracteristici: sintaxa
Dr.SabinBuragawww.purl.org/net/busaco
Number
reprezentare în dublă precizie (stocare pe 64 biți)
caracteristici: tipuri de date
Dr.SabinBuragawww.purl.org/net/busaco
String
secvențe de caractere Unicode
fiecare caracter ocupă 16 biți
caracteristici: tipuri de date
Dr.SabinBuragawww.purl.org/net/busaco
Boolean
expresii ce se pot evalua ca fiind true/false
caracteristici: tipuri de date
Dr.SabinBuragawww.purl.org/net/busaco
Object
aproape totul e considerat ca fiind obiect,
inclusiv funcțiile
caracteristici: tipuri de date
Dr.SabinBuragawww.purl.org/net/busaco
Null
înseamnă „nicio valoare”
caracteristici: tipuri de date
Dr.SabinBuragawww.purl.org/net/busaco
Undefined
are semnificația „nicio valoare asignată încă”
caracteristici: tipuri de date
Dr.SabinBuragawww.purl.org/net/busaco
Nu există valori întregi
convertirea unui șir în număr: parseInt ()
parseInt ("123")  123
parseInt ("11", 2)  3
caracteristici: tipuri de date
indică baza
de numerație
Dr.SabinBuragawww.purl.org/net/busaco
„Valoarea” NaN (“not a number”)
parseInt ("Salut")  NaN
isNaN (NaN + 3)  true
caracteristici: tipuri de date
Dr.SabinBuragawww.purl.org/net/busaco
Un caracter reprezintă un șir de lungime 1
caracteristici: tipuri de date
Dr.SabinBuragawww.purl.org/net/busaco
Șirurile sunt obiecte
"Salut".length  5
caracteristici: tipuri de date
Dr.SabinBuragawww.purl.org/net/busaco
Metode utile
pentru procesarea șirurilor de caractere:
s.charAt(pos) s.charCodeAt(pos) s.concat(s1, ..)
s.indexOf(s1, start)
s.match(regexp) s.replace(search, replace)
s.slice(start, end) s.split(separator, limit)
s.substring(start, end)
s.toLowerCase() s.toUpperCase()
etc.
caracteristici: tipuri de date
Dr.SabinBuragawww.purl.org/net/busaco
Valorile 0, "", NaN, null, undefined
sunt interpretate ca fiind false
!!234  true
caracteristici: tipuri de date
Dr.SabinBuragawww.purl.org/net/busaco
Variabilele se declară cu var
var marime;
var numeAnimal = "Tux";
variabilele declarate fără valori asignate
se consideră undefined
caracteristici: variabile
Dr.SabinBuragawww.purl.org/net/busaco
Dacă nu se folosește var,
atunci variabila este considerată globală
de evitat așa ceva!
caracteristici: variabile
Dr.SabinBuragawww.purl.org/net/busaco
Pentru numere: + – * / %
De asignare: += –= *= /= %=
Incrementare și decrementare: ++ – –
Concatenare de șiruri: "Java" + "Script"  "JavaScript"
Logici: && || ?:
caracteristici: operatori
Dr.SabinBuragawww.purl.org/net/busaco
Conversia tipurilor se face „din zbor” (dinamic)
"3" + 4 + 5  "345"
3 + 4 + "5"  "75"
adăugând un șir vid la o expresie, o convertim la String
caracteristici: operatori
Dr.SabinBuragawww.purl.org/net/busaco
Comparații: < > <= >= (numere și șiruri)
egalitatea valorilor se testează cu == și !=
1 == true  true
caracteristici: operatori
Dr.SabinBuragawww.purl.org/net/busaco
Comparații: < > <= >= (numere și șiruri)
egalitatea valorilor se testează cu == și !=
1 == true  true
a se folosi: 1 === true  false
caracteristici: operatori
inhibă conversia
tipurilor de date
Dr.SabinBuragawww.purl.org/net/busaco
Testare: if … else, switch
pentru switch, sunt permise expresii la fiecare case
(testarea se realizează cu operatorul ===)
switch (2 + 3) { /* sunt permise expresii */
case 4 + 1 : egalitate ();
break;
default : absurd (); // nu se apelează niciodată
}
caracteristici: control
Dr.SabinBuragawww.purl.org/net/busaco
Ciclare: while, do … while, for
do {
var nume = preiaNume ();
} while (nume != "");
for (var contor = 0; contor < 33; contor++) {
// de 33 de ori…
}
caracteristici: control
Dr.SabinBuragawww.purl.org/net/busaco
Perechi nume—valoare
caracteristici: obiecte
Dr.SabinBuragawww.purl.org/net/busaco
Perechi nume—valoare
tabele de dispersie (hash) în C/C++
tablouri asociative în Perl, PHP sau Ruby
HashMaps în Java
“everything except primitive values is an object”
caracteristici: obiecte
Dr.SabinBuragawww.purl.org/net/busaco
Perechi nume—valoare
numele este desemnat de un șir de caractere
(i.e., expresie de tip String)
valoarea poate fi de orice tip,
inclusiv null sau undefined
caracteristici: obiecte
Dr.SabinBuragawww.purl.org/net/busaco
Obiect  colecție de proprietăți,
având mai multe atribute
caracteristici: obiecte
Dr.SabinBuragawww.purl.org/net/busaco
Obiect  colecție de proprietăți,
având mai multe atribute
proprietățile pot conține alte obiecte,
valori primitive sau metode
caracteristici: obiecte
Dr.SabinBuragawww.purl.org/net/busaco
Obiecte predefinite:
Global Object
Function Array
String RegExp
Boolean Number
Math Date
caracteristici: obiecte
Dr.SabinBuragawww.purl.org/net/busaco
Create prin intermediul operatorului new:
var ob = new Object ();
var ob = { }; // echivalent cu linia anterioară
caracteristici: obiecte
se preferă această sintaxă
Dr.SabinBuragawww.purl.org/net/busaco
Accesarea proprietăților – operatorul .
ob.nume = "Tux";
var nume = ob.nume;
caracteristici: obiecte
Dr.SabinBuragawww.purl.org/net/busaco
Accesarea proprietăților – operatorul .
ob.nume = "Tux";
var nume = ob.nume;
echivalent cu:
ob["nume"] = "Tux";
var nume = ob["nume"];
caracteristici: obiecte
Dr.SabinBuragawww.purl.org/net/busaco
Declarare + asignare:
var pinguin = {
nume: "Tux",
proprietati: {
culoare: "verde",
marime: 17
}
}
caracteristici: obiecte
Dr.SabinBuragawww.purl.org/net/busaco
Declarare + asignare:
var pinguin = {
nume: "Tux",
proprietati: {
culoare: "verde",
marime: 17
}
}
caracteristici: obiecte
accesare:
pinguin.proprietati.marime  17
pinguin["proprietati"]["culoare"]  verde
Dr.SabinBuragawww.purl.org/net/busaco
Iterarea proprietăților – considerate chei:
var pinguin = { 'nume': 'Tux', 'marime': 17 };
for (var proprietate in pinguin) {
afiseaza (proprietate + ' = ' + pinguin[proprietate]);
}
caracteristici: obiecte
Dr.SabinBuragawww.purl.org/net/busaco
Tipuri speciale de obiecte
proprietățile (cheile) sunt numere,
nu șiruri de caractere
caracteristici: tablouri
Dr.SabinBuragawww.purl.org/net/busaco
Se poate utiliza sintaxa privitoare la obiecte:
var animale = new Array ();
animale[0] = "pinguin";
animale[1] = "urs";
animale[2] = "pterodactil";
animale.length  3
caracteristici: tablouri
Dr.SabinBuragawww.purl.org/net/busaco
Se poate utiliza sintaxa privitoare la obiecte:
var animale = new Array ();
animale[0] = "pinguin";
animale[1] = "urs";
animale[2] = "pterodactil";
animale.length  3
notație alternativă – preferată:
var animale = [ "pinguin", "urs", "pterodactil" ];
caracteristici: tablouri
Dr.SabinBuragawww.purl.org/net/busaco
Elementele pot aparține
unor tipuri de date eterogene
var animale = [ 33, "vierme", false, "gaga" ];
caracteristici: tablouri
Dr.SabinBuragawww.purl.org/net/busaco
Definite via function
function transformaPixeliInPuncte (px) {
var puncte = px * 300;
return puncte;
}
caracteristici: funcții
Dr.SabinBuragawww.purl.org/net/busaco
Dacă nu este întors nimic în mod explicit,
valoarea de retur se consideră undefined
caracteristici: funcții
Dr.SabinBuragawww.purl.org/net/busaco
Parametrii de intrare pot lipsi,
fiind considerați undefined
caracteristici: funcții
Dr.SabinBuragawww.purl.org/net/busaco
Pot fi transmise mai multe argumente,
cele în surplus fiind ignorate
transformaPixeliInPuncte (10, 7)  3000
caracteristici: funcții
Dr.SabinBuragawww.purl.org/net/busaco
Funcțiile sunt tot obiecte
astfel, pot fi specificate funcții anonime
în acest sens, JavaScript este un limbaj funcțional
caracteristici: funcții
expresii
lambda
Dr.SabinBuragawww.purl.org/net/busaco
var media = function () { // calculul mediei a N numere
var suma = 0;
for (var iter = 0,
lung = arguments.length;
iter < lung; iter++) {
suma += arguments[iter];
}
return suma / arguments.length;
};
caracteristici: funcții
Dr.SabinBuragawww.purl.org/net/busaco
var media = function () { // calculul mediei a N numere
var suma = 0;
for (var iter = 0,
lung = arguments.length;
iter < lung; iter++) {
suma += arguments[iter];
}
return suma / arguments.length;
};
caracteristici: funcții
variabilele declarate
în funcție nu vor fi
accesibile din exterior,
fiind „închise”

funcție closure
Dr.SabinBuragawww.purl.org/net/busaco
console.log ( media (9, 10, 7, 8, 7) )  8.2
rezultatul obținut în urma rulării programului JavaScript
via aplicația JS Bin – http://jsbin.com/
Dr.SabinBuragawww.purl.org/net/busaco
JavaScript Object Notation
http://json.org/
json
Dr.SabinBuragawww.purl.org/net/busaco
JavaScript Object Notation
format compact pentru interschimb de date
între aplicații
biblioteci de procesare și alte resurse de interes:
http://jsonauts.github.io/
json
Dr.SabinBuragawww.purl.org/net/busaco
{
'nume': 'Tux',
'stoc': 33,
'model': [ 'candid', 'furios', 'vesel' ]
}
json
datele pot fi evaluate
direct în JavaScript
Dr.SabinBuragawww.purl.org/net/busaco
instrumente
www.codefellows.org/blog/a-list-of-foundational-javascript-tools
Dr.SabinBuragawww.purl.org/net/busaco
Cum rulează programele JavaScript
în navigatorul Web?
Dr.SabinBuragawww.purl.org/net/busaco
Majoritatea programelor JavaScript
rulează – sunt interpretate –
în navigatorul Web via un script engine
SpiderMonkey, IonMonkey, Rhino (Mozilla)
V8 (Google, Opera, Node.js)
Dr.SabinBuragawww.purl.org/net/busaco
„injectarea” de cod JavaScript în documentele HTML
via elementul <script>
cod JavaScript intern vs. preluat dintr-un fișier extern
<body>
…
<script type="text/javascript">
alert ("Salut, lume!");
</script>
</body>
<script type="text/javascript"
src="//cdn.jsdelivr.net/jquery/2.1.3/jquery.min.js">
</script>
Dr.SabinBuragawww.purl.org/net/busaco
Un program JavaScript are acces la arborele DOM
(Document Object Model)
corespunzător documentului HTML
specificații ale Consorțiului Web
www.w3.org/DOM/DOMTR
Dr.SabinBuragawww.purl.org/net/busaco
<!DOCTYPE html>
<html>
<body>
<p>Tehnologii Web</p>
<div>
<img src="web.png"/>
</div>
</body>
</html>
HTML
HtmlElement
HTML
BodyElement
HTML
ParagraphElement
Text
HTML
DivElement
HTML
ImageElement
Dr.SabinBuragawww.purl.org/net/busaco
De asemenea, programele JavaScript au acces
la diverse obiecte oferite de mediul de execuție
pus la dispoziție de browser
e.g., informații privind contextul rulării
(caracteristici ale navigatorului, latența rețelei),
istoricul navigării, fereastra de redare a conținutului,
transfer (a)sincron de date,…
Dr.SabinBuragawww.purl.org/net/busaco
N-am putea recurge la biblioteci JS specifice?
Dr.SabinBuragawww.purl.org/net/busaco
Biblioteci generale privind prezentarea
conținutului și manipularea paginii Web
Dojo: dojotoolkit.org
jQuery: jquery.com
Prototype: prototypejs.org
Rico: http://sourceforge.net/projects/openrico/
Script.aculo.us: script.aculo.us
Dr.SabinBuragawww.purl.org/net/busaco
Biblioteci pentru
vizualizarea datelor
uzual, recurg la
<canvas> din HTML5
D3 Processing.js
sau la SVG
Snap.svg svg.js Bonsai
selection.datavisualization.ch
Dr.SabinBuragawww.purl.org/net/busaco
examinarea codului SVG generat de biblioteca Snap.svg
folosind instrumentele de depanare furnizate de browser
Dr.SabinBuragawww.purl.org/net/busaco
biblioteci JavaScript pentru grafica 3D:
Babilon, c3DL, CopperLicht, CubicVR, OSG,
PhiloGL, SceneJS, TDL, Three.js,…
alte detalii la www.khronos.org/webgl/wiki/User_Contributions
Dr.SabinBuragawww.purl.org/net/busaco
Multe alte biblioteci JavaScript specializate
procesarea formularelor Web
facilitarea transferurilor asincrone de date
realizarea de efecte vizuale
interacțiune cu utilizatorul
dezvoltare de jocuri (e.g., game engines)
tehnici criptografice
…
Dr.SabinBuragawww.purl.org/net/busaco
colecții de (micro-)biblioteci JS:
www.javascripting.com
jster.net
microjs.com
Dr.SabinBuragawww.purl.org/net/busaco
jQuery
aspecte esențiale (o prezentare succintă)
Dr.SabinBuragawww.purl.org/net/busaco
jQuery
scop principal:
oferirea unui framework JavaScript
pentru manipularea facilă a documentului HTML
pe baza selectorilor CSS – nivelul 3
http://jquery.com/
Dr.SabinBuragawww.purl.org/net/busaco
jQuery
concis, dar extensibil, ușor de folosit
nu intră în conflict cu alte biblioteci JavaScript
disponibil open source
existența unui număr mare de extensii (plug-ins)
http://plugins.jquery.com/
Dr.SabinBuragawww.purl.org/net/busaco
jQuery
documentații și tutoriale:
http://learn.jquery.com/
http://try.jquery.com/
http://jqfundamentals.com/
Dr.SabinBuragawww.purl.org/net/busaco
jQuery
filosofie inițială:
focalizarea asupra interacțiunii dintre codul JavaScript
și construcțiile HTML
aproape fiecare operație urmează șablonul:
„găsește ceva” + „execută ceva cu ceea ce-ai găsit”
Dr.SabinBuragawww.purl.org/net/busaco
jQuery
accesul la nodurile documentului HTML se realizează
via funcția jQuery() – notație prescurtată: $()
Dr.SabinBuragawww.purl.org/net/busaco
jQuery
accesul la nodurile documentului HTML se realizează
via funcția jQuery() – notație prescurtată: $()
// liniile de tabel de pe poziții pare vor fi redate
// via proprietățile de stil CSS din clasa ‘fundal-gri’
$("table tr:nth-child(even)").addClass("fundal-gri");
obiect jQuery selector CSS
metodă
(funcționalitate)
Dr.SabinBuragawww.purl.org/net/busaco
jQuery
selectarea nodurilor dorite recurge la convențiile
privitoare la selectorii CSS – nivelul 2 și nivelul 3
http://docs.jquery.com/Selectors
Dr.SabinBuragawww.purl.org/net/busaco
jQuery
selectarea nodurilor dorite recurge la convențiile
privitoare la selectorii CSS – nivelul 2 și nivelul 3
$(div.info) – toate elementele <div class="info">
$(div#adresa) – elementul <div id="adresa">
$(div h1) – în contextul: <div> care include <h1>
$(div#cap > p) – context: <div id="cap"> cu descend. <p>
Dr.SabinBuragawww.purl.org/net/busaco
jQuery
selectori „magici”:
poziție – :first :last
antet – :header
vizibilitate – :hidden :visible
animație – :animated
formulare – :input :text :password :radio :submit
conținut – :contains (…)
Dr.SabinBuragawww.purl.org/net/busaco
jQuery
unele rezultate ale $(…) pot întoarce colecții de noduri,
prelucrate prin:
$('div.info').size ()
mărimea colecției obținute
Dr.SabinBuragawww.purl.org/net/busaco
jQuery
unele rezultate ale $(…) pot întoarce colecții de noduri,
prelucrate prin:
$('div.info').each (function (div) { … })
iterare via o funcție – aici: anonimă
Dr.SabinBuragawww.purl.org/net/busaco
jQuery
unele rezultate ale $(…) pot întoarce colecții de noduri,
prelucrate prin:
$('div.info').html ('<em>Web hackathon</em> la FII')
inserare de construcții HTML
Dr.SabinBuragawww.purl.org/net/busaco
jQuery
unele rezultate ale $(…) pot întoarce colecții de noduri,
prelucrate prin:
$('img.foto').attr ('src', '/anonim.png')
alterarea unui atribut
Dr.SabinBuragawww.purl.org/net/busaco
jQuery
unele rezultate ale $(…) pot întoarce colecții de noduri,
prelucrate prin:
$('a.menu').addClass ('vizitat')
adăugarea unei clase CSS
Dr.SabinBuragawww.purl.org/net/busaco
jQuery
unele rezultate ale $(…) pot întoarce colecții de noduri,
prelucrate prin:
$('p:odd').css ('color', 'blue')
modificarea unor proprietăți CSS
poziție impară
Dr.SabinBuragawww.purl.org/net/busaco
jQuery
o serie de metode întorc rezultate
privind primul nod selectat:
var latime = $('table').width (); // lățimea tabelului
var src = $('img#profil').attr ('src'); // URL-ul unei imagini
var ultimP = $('p:last').html (); // conținutul ultimului <p>
Dr.SabinBuragawww.purl.org/net/busaco
jQuery
asocierea de funcții de tratare a evenimentelor
// evenimentul click asupra unui element <a>
$('a').click ( function(ev) {
$(this).css({ backgroundColor: 'yellow' });
ev.preventDefault (); // previne comportamentul implicit
});
$('a:first').click (); // generăm click prin program
Dr.SabinBuragawww.purl.org/net/busaco
jQuery
suportul pentru transferuri asincrone – Ajax:
încărcare asincronă a unui document
$('div#stiri').load ('stiri.html');
Dr.SabinBuragawww.purl.org/net/busaco
jQuery
suportul pentru transferuri asincrone – Ajax:
preluarea unor date de la o anumită adresă Web
$.get (url, parametri, funcție-de-procesare-a-datelor);
Dr.SabinBuragawww.purl.org/net/busaco
jQuery
suportul pentru transferuri asincrone – Ajax:
preluare datelor JSON oferite de o aplicație Web
$.getJSON (url, parametri, funcție-de-procesare-a-datelor);
Dr.SabinBuragawww.purl.org/net/busaco
jQuery
efectuarea de animații simple:
$('h1').hide ('slow');
$('h1').slideDown ('fast');
$('h1').fadeOut (2000);
alternativă mai performantă: Velocity.js – velocityjs.org/
Dr.SabinBuragawww.purl.org/net/busaco
jQuery
efectuarea de animații simple:
acțiunile pot fi specificate și de programator
$("#reclama").animate ({
width: "+=100px",
opacity: 0.4,
fontSize: "3em",
borderWidth: "10px"
}, 1500);
detalii la
http://api.jquery.com/animate/
Dr.SabinBuragawww.purl.org/net/busaco
Câteva exemple de interes?
Dr.SabinBuragawww.purl.org/net/busaco
Obținerea fotografiilor publice stocate pe situl
Flickr pe baza serviciului Web oferit
cod-sursă disponibil la
http://jsfiddle.net/busaco/4d2tmc6b/
studiu de caz: FlickrPics
Dr.SabinBuragawww.purl.org/net/busaco
Obținerea fotografiilor publice stocate pe situl
Flickr pe baza serviciului Web oferit
utilizăm URL-ul
http://api.flickr.com/services/feeds/photos_public.gne
pentru a obține informații despre imagini
(formate disponibile: Atom, CSV, JSON, XML,…)
vezi http://www.flickr.com/services/feeds/docs/photos_public/
studiu de caz: FlickrPics
Dr.SabinBuragawww.purl.org/net/busaco
interactiune web: ajax – studiu de caz
Forma generală a răspunsului JSON transmis de Flickr:
{
"title" : "Recent Uploads",
"link" : "http://www.flickr.com/photos/",
"modified" : "2014-12-06T13:33:07Z",
"generator" : "http://www.flickr.com/",
"items" : [ {
"title" : "...",
"link" : "http://www.flickr.com/photos/.../4204222/",
"media" : { "m": "https://farm.staticflickr.com/...jpg" },
"date_taken": "2012-05-20T17:23:43-08:00",
"description": "...",
"published" : "2012-05-26T13:49:08Z",
"author" : "...",
"author_id" : "...",
"tags" : "iasi romania informatica FII ..."
} ]
}
Dr.SabinBuragawww.purl.org/net/busaco
// preluăm asincron imagini disponibile pe Flickr
jQuery.getJSON
("http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?",
{ // datele de intrare transmise serviciului Web
tags: "Iasi, informatica", format: "json"
},
// funcția anonimă ce va procesa datele JSON trimise asincron de Flickr
function (data) {
// iterăm fiecare informație obținută de la serviciul Web
$.each (data.items, function (numar, foto) {
// creăm un element <img> având ca valoare a atributului "src"
// adresa Web inclusă în datele JSON obținute;
// acest <img> va fi adăugat la elementul cu id="imagini" din pagină
$ ("<img/>").attr ("src", foto.media.m).attr ("title", foto.title)
.appendTo ("#imagini");
});
});
studiu de caz: FlickrPics
Dr.SabinBuragawww.purl.org/net/busaco
studiu de caz: FlickrPics
un posibil rezultat – editarea & rularea codului via JSFiddle
Dr.SabinBuragawww.purl.org/net/busaco
Crearea unui joc simplu cu 2 zaruri
„arunci” zarurile și câștigi 10 tucși numai dacă
suma punctelor obținute este mai mare de 7
(uneori, pot apărea surprize…)
cod-sursă disponibil la
http://jsfiddle.net/busaco/r8L2kp30/
studiu de caz: DiceX
Dr.SabinBuragawww.purl.org/net/busaco
Managementul unui zar – „clasa” Zar
proprietate: valoareZar
metode: obtineZar () și aruncaZar ()
studiu de caz: DiceX
obține un număr preluat de la random.org
sau local cu Math.round (Math.random () * 5) + 1
Dr.SabinBuragawww.purl.org/net/busaco
Implementarea jocului – „clasa” Joc
proprietăți: scorCurent, zar1, zar2
metode: aruncaZaruri (), afiseazaScor (), genereazaSurprize ()
studiu de caz: DiceX
probabilitate 20% ca Tux să fure banii
probabilitate 15% ca Pingu să ofere 33 de tucși
Dr.SabinBuragawww.purl.org/net/busaco
studiu de caz: DiceX
depanare cu Firebug
sau cu instrumentele
oferite de browser
Dr.SabinBuragawww.purl.org/net/busaco
Bun, aș dori să aprofundez…
Dr.SabinBuragawww.purl.org/net/busaco
S. Buraga, Dezvoltarea aplicațiilor Web la nivel de client,
FII, UAIC, 2015: www.info.uaic.ro/~busaco/teach/courses/cliw/
S. Buraga, Front-end Web Developer Resources, 2014
http://tinyurl.com/cliw-devel
JSbooks – the best free JavaScript resources
http://jsbooks.revolunet.com/
DevDocs
http://devdocs.io/javascript/
resurse
Dr.SabinBuragawww.purl.org/net/busaco
JavaScript
Mult succes!
imagini din filmul Perfume: The Story of a Murderer – www.imdb.com/title/tt0396171/

More Related Content

What's hot

CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
Sabin Buraga
 
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
Sabin Buraga
 
CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5
CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5
CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5
Sabin Buraga
 
CLIW 2017-2018 (5/12) Limbajul de programare JavaScript. Aspecte esenţiale
CLIW 2017-2018 (5/12) Limbajul de programare JavaScript. Aspecte esenţialeCLIW 2017-2018 (5/12) Limbajul de programare JavaScript. Aspecte esenţiale
CLIW 2017-2018 (5/12) Limbajul de programare JavaScript. Aspecte esenţiale
Sabin Buraga
 
CLIW 2017-2018 (8/12) Ingineria dezvoltării aplicaţiilor JavaScript
CLIW 2017-2018 (8/12) Ingineria dezvoltării aplicaţiilor JavaScriptCLIW 2017-2018 (8/12) Ingineria dezvoltării aplicaţiilor JavaScript
CLIW 2017-2018 (8/12) Ingineria dezvoltării aplicaţiilor JavaScript
Sabin Buraga
 
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSTAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
Sabin Buraga
 
CLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de client
CLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de clientCLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de client
CLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de client
Sabin Buraga
 
Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări...
Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări...Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări...
Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări...
Sabin Buraga
 
CLIW 2015-2016 (9/13) Ingineria dezvoltării aplicațiilor JavaScript
CLIW 2015-2016 (9/13) Ingineria dezvoltării aplicațiilor JavaScriptCLIW 2015-2016 (9/13) Ingineria dezvoltării aplicațiilor JavaScript
CLIW 2015-2016 (9/13) Ingineria dezvoltării aplicațiilor JavaScript
Sabin Buraga
 
CLIW 2015-2016 (11/13) Programare Web. API-uri JavaScript în contextul HTML5
CLIW 2015-2016 (11/13) Programare Web. API-uri JavaScript în contextul HTML5CLIW 2015-2016 (11/13) Programare Web. API-uri JavaScript în contextul HTML5
CLIW 2015-2016 (11/13) Programare Web. API-uri JavaScript în contextul HTML5
Sabin Buraga
 
CLIW 2015-2016 (6/13) (Re)găsirea resurselor Web. De la motoare de căutare și...
CLIW 2015-2016 (6/13) (Re)găsirea resurselor Web. De la motoare de căutare și...CLIW 2015-2016 (6/13) (Re)găsirea resurselor Web. De la motoare de căutare și...
CLIW 2015-2016 (6/13) (Re)găsirea resurselor Web. De la motoare de căutare și...
Sabin Buraga
 
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
Sabin Buraga
 
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Sabin Buraga
 
CLIW 2015-2016 (4/13) Design Web. Proiectarea siturilor Web. Design Web respo...
CLIW 2015-2016 (4/13) Design Web. Proiectarea siturilor Web. Design Web respo...CLIW 2015-2016 (4/13) Design Web. Proiectarea siturilor Web. Design Web respo...
CLIW 2015-2016 (4/13) Design Web. Proiectarea siturilor Web. Design Web respo...
Sabin Buraga
 
Web 2016 (05/13) Programare Web – Dezvoltarea aplicațiilor Web via Node.js
Web 2016 (05/13) Programare Web – Dezvoltarea aplicațiilor Web via Node.jsWeb 2016 (05/13) Programare Web – Dezvoltarea aplicațiilor Web via Node.js
Web 2016 (05/13) Programare Web – Dezvoltarea aplicațiilor Web via Node.js
Sabin Buraga
 
CLIW 2015-2016 (5/13) Vizualizarea datelor – o privire de ansamblu
CLIW 2015-2016 (5/13) Vizualizarea datelor – o privire de ansambluCLIW 2015-2016 (5/13) Vizualizarea datelor – o privire de ansamblu
CLIW 2015-2016 (5/13) Vizualizarea datelor – o privire de ansamblu
Sabin Buraga
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #12): Programare Web....
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #12): Programare Web....Dezvoltarea aplicaţiilor Web la nivel de client (cursul #12): Programare Web....
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #12): Programare Web....
Sabin Buraga
 
Web 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHP
Web 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHPWeb 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHP
Web 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHP
Sabin Buraga
 
Web 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTWeb 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma REST
Sabin Buraga
 
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Sabin Buraga
 

What's hot (20)

CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
 
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
 
CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5
CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5
CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5
 
CLIW 2017-2018 (5/12) Limbajul de programare JavaScript. Aspecte esenţiale
CLIW 2017-2018 (5/12) Limbajul de programare JavaScript. Aspecte esenţialeCLIW 2017-2018 (5/12) Limbajul de programare JavaScript. Aspecte esenţiale
CLIW 2017-2018 (5/12) Limbajul de programare JavaScript. Aspecte esenţiale
 
CLIW 2017-2018 (8/12) Ingineria dezvoltării aplicaţiilor JavaScript
CLIW 2017-2018 (8/12) Ingineria dezvoltării aplicaţiilor JavaScriptCLIW 2017-2018 (8/12) Ingineria dezvoltării aplicaţiilor JavaScript
CLIW 2017-2018 (8/12) Ingineria dezvoltării aplicaţiilor JavaScript
 
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSTAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
 
CLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de client
CLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de clientCLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de client
CLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de client
 
Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări...
Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări...Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări...
Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări...
 
CLIW 2015-2016 (9/13) Ingineria dezvoltării aplicațiilor JavaScript
CLIW 2015-2016 (9/13) Ingineria dezvoltării aplicațiilor JavaScriptCLIW 2015-2016 (9/13) Ingineria dezvoltării aplicațiilor JavaScript
CLIW 2015-2016 (9/13) Ingineria dezvoltării aplicațiilor JavaScript
 
CLIW 2015-2016 (11/13) Programare Web. API-uri JavaScript în contextul HTML5
CLIW 2015-2016 (11/13) Programare Web. API-uri JavaScript în contextul HTML5CLIW 2015-2016 (11/13) Programare Web. API-uri JavaScript în contextul HTML5
CLIW 2015-2016 (11/13) Programare Web. API-uri JavaScript în contextul HTML5
 
CLIW 2015-2016 (6/13) (Re)găsirea resurselor Web. De la motoare de căutare și...
CLIW 2015-2016 (6/13) (Re)găsirea resurselor Web. De la motoare de căutare și...CLIW 2015-2016 (6/13) (Re)găsirea resurselor Web. De la motoare de căutare și...
CLIW 2015-2016 (6/13) (Re)găsirea resurselor Web. De la motoare de căutare și...
 
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
 
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
 
CLIW 2015-2016 (4/13) Design Web. Proiectarea siturilor Web. Design Web respo...
CLIW 2015-2016 (4/13) Design Web. Proiectarea siturilor Web. Design Web respo...CLIW 2015-2016 (4/13) Design Web. Proiectarea siturilor Web. Design Web respo...
CLIW 2015-2016 (4/13) Design Web. Proiectarea siturilor Web. Design Web respo...
 
Web 2016 (05/13) Programare Web – Dezvoltarea aplicațiilor Web via Node.js
Web 2016 (05/13) Programare Web – Dezvoltarea aplicațiilor Web via Node.jsWeb 2016 (05/13) Programare Web – Dezvoltarea aplicațiilor Web via Node.js
Web 2016 (05/13) Programare Web – Dezvoltarea aplicațiilor Web via Node.js
 
CLIW 2015-2016 (5/13) Vizualizarea datelor – o privire de ansamblu
CLIW 2015-2016 (5/13) Vizualizarea datelor – o privire de ansambluCLIW 2015-2016 (5/13) Vizualizarea datelor – o privire de ansamblu
CLIW 2015-2016 (5/13) Vizualizarea datelor – o privire de ansamblu
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #12): Programare Web....
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #12): Programare Web....Dezvoltarea aplicaţiilor Web la nivel de client (cursul #12): Programare Web....
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #12): Programare Web....
 
Web 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHP
Web 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHPWeb 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHP
Web 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHP
 
Web 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTWeb 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma REST
 
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
 

Similar to Esență de JavaScript pentru novici

Web 2016 (07/13) Modelarea datelor. Extragerea datelor cu XPath. Validări XML...
Web 2016 (07/13) Modelarea datelor. Extragerea datelor cu XPath. Validări XML...Web 2016 (07/13) Modelarea datelor. Extragerea datelor cu XPath. Validări XML...
Web 2016 (07/13) Modelarea datelor. Extragerea datelor cu XPath. Validări XML...
Sabin Buraga
 
Sabin Buraga — JavaScript
Sabin Buraga — JavaScriptSabin Buraga — JavaScript
Sabin Buraga — JavaScript
Sabin Buraga
 
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...
Sabin Buraga
 
WADe 2017-2018 (10/12) Specifying Ontologies via OWL 2. Description Logics. R...
WADe 2017-2018 (10/12) Specifying Ontologies via OWL 2. Description Logics. R...WADe 2017-2018 (10/12) Specifying Ontologies via OWL 2. Description Logics. R...
WADe 2017-2018 (10/12) Specifying Ontologies via OWL 2. Description Logics. R...
Sabin Buraga
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...
Sabin Buraga
 
Dezvoltarea aplicațiilor Web (5/12): Modelul RDF (Resource Description Framew...
Dezvoltarea aplicațiilor Web (5/12): Modelul RDF (Resource Description Framew...Dezvoltarea aplicațiilor Web (5/12): Modelul RDF (Resource Description Framew...
Dezvoltarea aplicațiilor Web (5/12): Modelul RDF (Resource Description Framew...
Sabin Buraga
 
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSTAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
Sabin Buraga
 
WADe 2014—2015 (10/12): Semantic Web—Specificarea ontologiilor via OWL 2. Log...
WADe 2014—2015 (10/12): Semantic Web—Specificarea ontologiilor via OWL 2. Log...WADe 2014—2015 (10/12): Semantic Web—Specificarea ontologiilor via OWL 2. Log...
WADe 2014—2015 (10/12): Semantic Web—Specificarea ontologiilor via OWL 2. Log...
Sabin Buraga
 
O lectie de anatomie Web. Disectia unui document HTML
O lectie de anatomie Web. Disectia unui document HTMLO lectie de anatomie Web. Disectia unui document HTML
O lectie de anatomie Web. Disectia unui document HTML
Sabin Buraga
 
Suita de tehnologii HTML5
Suita de tehnologii HTML5Suita de tehnologii HTML5
Suita de tehnologii HTML5
Sabin Buraga
 
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)
Sabin Buraga
 
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebWeb 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Sabin Buraga
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Sabin Buraga
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #6): Căutarea resurse...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #6): Căutarea resurse...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #6): Căutarea resurse...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #6): Căutarea resurse...
Sabin Buraga
 
STAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSTAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.js
Sabin Buraga
 
CLIW 2017-2018 (3/12) (Re)găsirea resurselor Web. De la motoare de căutare şi...
CLIW 2017-2018 (3/12) (Re)găsirea resurselor Web. De la motoare de căutare şi...CLIW 2017-2018 (3/12) (Re)găsirea resurselor Web. De la motoare de căutare şi...
CLIW 2017-2018 (3/12) (Re)găsirea resurselor Web. De la motoare de căutare şi...
Sabin Buraga
 
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...
Sabin Buraga
 
Web 2016 (06/13) Modelarea datelor. Familia XML + spații de nume
Web 2016 (06/13) Modelarea datelor. Familia XML + spații de numeWeb 2016 (06/13) Modelarea datelor. Familia XML + spații de nume
Web 2016 (06/13) Modelarea datelor. Familia XML + spații de nume
Sabin Buraga
 
CLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScript
CLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScriptCLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScript
CLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScript
Sabin Buraga
 
CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5
CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5
CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5
Sabin Buraga
 

Similar to Esență de JavaScript pentru novici (20)

Web 2016 (07/13) Modelarea datelor. Extragerea datelor cu XPath. Validări XML...
Web 2016 (07/13) Modelarea datelor. Extragerea datelor cu XPath. Validări XML...Web 2016 (07/13) Modelarea datelor. Extragerea datelor cu XPath. Validări XML...
Web 2016 (07/13) Modelarea datelor. Extragerea datelor cu XPath. Validări XML...
 
Sabin Buraga — JavaScript
Sabin Buraga — JavaScriptSabin Buraga — JavaScript
Sabin Buraga — JavaScript
 
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...
 
WADe 2017-2018 (10/12) Specifying Ontologies via OWL 2. Description Logics. R...
WADe 2017-2018 (10/12) Specifying Ontologies via OWL 2. Description Logics. R...WADe 2017-2018 (10/12) Specifying Ontologies via OWL 2. Description Logics. R...
WADe 2017-2018 (10/12) Specifying Ontologies via OWL 2. Description Logics. R...
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...
 
Dezvoltarea aplicațiilor Web (5/12): Modelul RDF (Resource Description Framew...
Dezvoltarea aplicațiilor Web (5/12): Modelul RDF (Resource Description Framew...Dezvoltarea aplicațiilor Web (5/12): Modelul RDF (Resource Description Framew...
Dezvoltarea aplicațiilor Web (5/12): Modelul RDF (Resource Description Framew...
 
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSTAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
 
WADe 2014—2015 (10/12): Semantic Web—Specificarea ontologiilor via OWL 2. Log...
WADe 2014—2015 (10/12): Semantic Web—Specificarea ontologiilor via OWL 2. Log...WADe 2014—2015 (10/12): Semantic Web—Specificarea ontologiilor via OWL 2. Log...
WADe 2014—2015 (10/12): Semantic Web—Specificarea ontologiilor via OWL 2. Log...
 
O lectie de anatomie Web. Disectia unui document HTML
O lectie de anatomie Web. Disectia unui document HTMLO lectie de anatomie Web. Disectia unui document HTML
O lectie de anatomie Web. Disectia unui document HTML
 
Suita de tehnologii HTML5
Suita de tehnologii HTML5Suita de tehnologii HTML5
Suita de tehnologii HTML5
 
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)
 
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebWeb 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #6): Căutarea resurse...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #6): Căutarea resurse...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #6): Căutarea resurse...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #6): Căutarea resurse...
 
STAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSTAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.js
 
CLIW 2017-2018 (3/12) (Re)găsirea resurselor Web. De la motoare de căutare şi...
CLIW 2017-2018 (3/12) (Re)găsirea resurselor Web. De la motoare de căutare şi...CLIW 2017-2018 (3/12) (Re)găsirea resurselor Web. De la motoare de căutare şi...
CLIW 2017-2018 (3/12) (Re)găsirea resurselor Web. De la motoare de căutare şi...
 
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...
 
Web 2016 (06/13) Modelarea datelor. Familia XML + spații de nume
Web 2016 (06/13) Modelarea datelor. Familia XML + spații de numeWeb 2016 (06/13) Modelarea datelor. Familia XML + spații de nume
Web 2016 (06/13) Modelarea datelor. Familia XML + spații de nume
 
CLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScript
CLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScriptCLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScript
CLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScript
 
CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5
CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5
CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5
 

More from Sabin Buraga

Web 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleWeb 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturale
Sabin Buraga
 
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebWeb 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Sabin Buraga
 
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Sabin Buraga
 
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelWeb 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Sabin Buraga
 
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Sabin Buraga
 
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Sabin Buraga
 
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeWeb 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Sabin Buraga
 
STAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSTAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor Web
Sabin Buraga
 
STAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSTAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului Web
Sabin Buraga
 
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSTAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
Sabin Buraga
 
STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5
Sabin Buraga
 
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
Sabin Buraga
 
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
Sabin Buraga
 
STAW 11/12: Performanţa aplicaţiilor Web la nivel de client
STAW 11/12: Performanţa aplicaţiilor Web la nivel de clientSTAW 11/12: Performanţa aplicaţiilor Web la nivel de client
STAW 11/12: Performanţa aplicaţiilor Web la nivel de client
Sabin Buraga
 
Sabin Buraga: Dezvoltator Web?! (2019)
Sabin Buraga: Dezvoltator Web?! (2019)Sabin Buraga: Dezvoltator Web?! (2019)
Sabin Buraga: Dezvoltator Web?! (2019)
Sabin Buraga
 
HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...
HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...
HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...
Sabin Buraga
 
HCI 2018 (3/10) Design Models, Methodologies and Guidelines
HCI 2018 (3/10) Design Models, Methodologies and GuidelinesHCI 2018 (3/10) Design Models, Methodologies and Guidelines
HCI 2018 (3/10) Design Models, Methodologies and Guidelines
Sabin Buraga
 
HCI 2018 (4/10) Information Architecture. From Design Patterns to Visual Design
HCI 2018 (4/10) Information Architecture. From Design Patterns to Visual DesignHCI 2018 (4/10) Information Architecture. From Design Patterns to Visual Design
HCI 2018 (4/10) Information Architecture. From Design Patterns to Visual Design
Sabin Buraga
 
HCI 2018 (5/10) Information Architecture. From Design Patterns to Flow
HCI 2018 (5/10) Information Architecture. From Design Patterns to FlowHCI 2018 (5/10) Information Architecture. From Design Patterns to Flow
HCI 2018 (5/10) Information Architecture. From Design Patterns to Flow
Sabin Buraga
 
HCI 2018 (6/10) Design Patterns for Social (Web/mobile) Interactions
HCI 2018 (6/10) Design Patterns for Social (Web/mobile) InteractionsHCI 2018 (6/10) Design Patterns for Social (Web/mobile) Interactions
HCI 2018 (6/10) Design Patterns for Social (Web/mobile) Interactions
Sabin Buraga
 

More from Sabin Buraga (20)

Web 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleWeb 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturale
 
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebWeb 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
 
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
 
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelWeb 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
 
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
 
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
 
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeWeb 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
 
STAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSTAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor Web
 
STAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSTAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului Web
 
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSTAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
 
STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5
 
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
 
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
 
STAW 11/12: Performanţa aplicaţiilor Web la nivel de client
STAW 11/12: Performanţa aplicaţiilor Web la nivel de clientSTAW 11/12: Performanţa aplicaţiilor Web la nivel de client
STAW 11/12: Performanţa aplicaţiilor Web la nivel de client
 
Sabin Buraga: Dezvoltator Web?! (2019)
Sabin Buraga: Dezvoltator Web?! (2019)Sabin Buraga: Dezvoltator Web?! (2019)
Sabin Buraga: Dezvoltator Web?! (2019)
 
HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...
HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...
HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...
 
HCI 2018 (3/10) Design Models, Methodologies and Guidelines
HCI 2018 (3/10) Design Models, Methodologies and GuidelinesHCI 2018 (3/10) Design Models, Methodologies and Guidelines
HCI 2018 (3/10) Design Models, Methodologies and Guidelines
 
HCI 2018 (4/10) Information Architecture. From Design Patterns to Visual Design
HCI 2018 (4/10) Information Architecture. From Design Patterns to Visual DesignHCI 2018 (4/10) Information Architecture. From Design Patterns to Visual Design
HCI 2018 (4/10) Information Architecture. From Design Patterns to Visual Design
 
HCI 2018 (5/10) Information Architecture. From Design Patterns to Flow
HCI 2018 (5/10) Information Architecture. From Design Patterns to FlowHCI 2018 (5/10) Information Architecture. From Design Patterns to Flow
HCI 2018 (5/10) Information Architecture. From Design Patterns to Flow
 
HCI 2018 (6/10) Design Patterns for Social (Web/mobile) Interactions
HCI 2018 (6/10) Design Patterns for Social (Web/mobile) InteractionsHCI 2018 (6/10) Design Patterns for Social (Web/mobile) Interactions
HCI 2018 (6/10) Design Patterns for Social (Web/mobile) Interactions
 

Esență de JavaScript pentru novici