Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
Leonardo da Vinci
inventat de Brendan Eich (1995)
denumit initial LiveScript
implementat in Netscape Navigator
adaptat de Microsoft: JScript (1996)
standardizat in 1997 de ECMA
European Computer Manufacturers Association
www.ecma-international.org
limbaj de tip script (interpretat)
limbaj de tip script (interpretat)
navigator Web
platforma de dezvoltare
a aplicatiilor
aplicatie de sine-statatoare
componente
ale sistemului de operare
Dashboard – Mac OS X
Sidebar – Windows Vista/7
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
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
tipuri de date:
Number
dubla precizie, stocare pe 64 biti
String
secvente de caractere Unicode, 16 biti
Boolean
secvente ce se pot evalua ca true/false
Object
Function, Array, Date, RegExp
Null
semnifica “nici o valoare”
Undefined
“nici o valoare asignata inca”
“valoarea” NaN – “not a number”
parseInt ("Salut")NaN
Infinity
–Infinity
un caracter reprezinta
un sir de lungime 1
"Salut".length5
valorile 0, "", NaN, null, undefined
sunt interpretate ca fiind false
variabile sunt declarate cu var
var marime;
var numeAnimal = "Tux";
variabilele declarate fara valori asignate,
se considera undefined
daca nu se foloseste var,
atunci variabila este considerata globala
"3" + 4 + 5345
3 + 4 + "5"75
pentru a afla tipul unei expresii,
se foloseste typeof
typeof "Tux"string
instructiuni de control
perechi nume—valoare
perechi nume—valoare
colectii de proprietati,
avand mai multe atribute
Global
Object
Function
Array
String
Boolean
Number
Math
Date
obiecte
accesarea proprietatilor
obiect.nume = "Tux";
var nume = obiect.nume;
obiecte
accesarea proprietatilor
obiect.nume = "Tux";
var nume = obiect.nume;
echivalent:
obiect["nume"] = "Tux";
var nume = obiect["nume"];
obiecte
var pingu = {
nume: "Tux",
proprietati: {
culoare: "oranj",
marime: 17
}
}
tablouri
zoo.length3
tablouri
zoo.length3
notatie alternativa:
iterari:
expresii
lambda
functii
expresii
lambda
tux.oferaNumeMare ()"TUX"
in JavaScript, totul e considerat
ca fiind obiect – chiar si functiile
orice obiect e intotdeauna mutabil
(poate fi alterat oricind)
operatorul . este echivalent
cu de-referentierea:
<script type="application/javascript">
var nav = window.navigator.userAgent;
// date privitoare la browser
</script>
graceful degradation &
progresive enhancement
json.org
{
'nume' : 'Tux',
'stoc' : 33,
'gen' : ['candid', 'furios', 'vesel']
}
datele pot fi
evaluate direct
in JavaScript
instrumente
medii de dezvoltare
Aptana Studio
depanare
Firebug (Lite)
Visual Studio Developer 2010
instrumente
Dojo: dojotoolkit.org
jQuery: jquery.com
Prototype: prototypejs.org
Rico: openrico.org
Script.aculo.us: script.aculo.us
YUI: developer.yahoo.net/yui/
…si multe altele
jQuery
scop principal:
manipularea documentului HTML
pe baza selectorilor CSS – nivelul 3
http://jquery.com/
http://visualjquery.com/
jQuery
“gaseste ceva”
+
“executa ceva cu ceea ce-ai gasit”
jQuery
http://docs.jquery.com/Selectors
jQuery
selectori “magici”:
$('div.info')
toate elementele <div class="info">
$('div#adresa')
elementul <div id="adresa">
$('div h1')
in contextul: <div> care include <h1>
$('div#menu > p')
in contextul:
<div id="menu"> cu descendentii <p>
unele rezultate ale $(…) pot intoarce
colectii de noduri, prelucrate prin:
$('div.info').size ()
marimea colectiei obtinute
$('div.info').html ('<em>Salut</em>')
inserare de cod HTML
unele rezultate ale $(…) pot intoarce
colectii de noduri, prelucrate prin:
$('a.menu').addClass ('vizitat')
adaugarea unei clase CSS
$('div#stiri').load ('stiri.html');
incarcare asincrona
manipularea formularelor
jquery.com/plugins/project/form
jQuery
efecte de interfata +
facilitarea interactiunii cu utilizatorul
(e.g., slider, tabs, resize, drag & drop)
http://ui.jquery.com/
jQuery
R. Harmes, D. Diaz,
Pro JavaScript Design Patterns,
Apress, 2008
S. Willinson,
A (Re)-Introduction to JavaScript,
ETech Conference, 2005
resurse
Mozilla Developer Center
developer.mozilla.org
Ajaxian
www.ajaxian.com
Ajax Patterns
www.ajaxpatterns.org
jQuery
http://docs.jquery.com
www.learningjquery.com