JavaScript este un limbaj de programare (de scripting), folosit in mod traditional pentru programarea client-side: codul javascript este descarcat de browser si interpretat pe calculatorul utilizatorului, nu pe server. Cu toate ca programarea client-side este cea mai cunoscuta folosire a JavaScript, mai nou se poate programa si server-side in JavaScript (vezi Aptana Jaxer).
Pentru a insera cod JavaScript intr-o pagina web, exista doua variante:
- putem scrie cod intre tag-urile
<script>si</script>, astfel:<script type="text/javascript">//<![CDATA[ //cod JavaScript aici... //]]></script> - sau putem scrie codul JavaScript intr-un fisier extern si il includem in pagina web, tot cu ajutorul tag-ului script, astfel:
<script type="text/javascript" src="cale/catre/fisier.js"></script>
Note:
- am presupus ca folosim DOCTYPE-ul XHTML;
- nu era nevoie de atributul type; pentru scripturile inline (primul caz), este implicit, iar in cazul al doilea, este datoria serverului sa seteze tipul fisierelor .js la text/javascript.
Totusi, a doua varianta este preferata, deoarece este mai usor de administrat, si in general, in web design, este o buna practica separarea partii de CSS, de cea de JavaScript, si de cea de HTML.
Sintaxa limbajului, ar trebui sa fie familiara programatorilor C sau orice alt limbaj derivat din C (exista o prezentare generala pe Wikipedia), dar exista cateva diferente specifice. Sa le luam pe rand.
Mai intai, trebuie mentionat faptul ca in JavaScript, variabilele nu au asociat un tip atunci cand sunt definite; unei variabile ii poate fi asignata o valoare de orice tip, iar tipurile sunt asociate valorilor, nu variabilelor (mai multe pe Wikipedia).
Apoi, trebuie mentionat faptul ca in JavaScript, functiile sunt obiecte, si, la fel ca orice obiect, pot avea atribute si metode. Mai mult, exista in JavaScript notiunea de functie anonima: o functie care nu are nume. Si mai interesant, in JavaScript definirea unei functii cu nume este echivalenta cu asignarea unei functii anonime, unei variabile care are acelasi nume cu functia. Probabil ca cel mai bine este un exemplu (via Wikipedia):
function foo(x) {return x*x;}
este echivalent cu
var foo = function(x) {return x*x;}
In al treilea rand, exista in Javascript cuvantul cheie var; cu ajutorul acestuia, putem defini variabile locale. Dar ce se intampla cand folosim numele unei variabile, fara sa folosim cuvantul cheie var; fie x aceasta variabila. Mai mult, sa presupunem ca folosim variabila, intr-o functie care este definita intr-o alta functie. Mai intai, browser-ul cauta din parinte in parinte (unde parinte este functia in care este declarata o alta functie), prima functie care are o variabila locala cu numele x. Daca aceasta functie parine exista, x-ul din functia noastra va fi de fapt o referinta la x-ul din parinte (si deci orice modificari efectuate asupra lui, sunt efectuate asupra x-ului din parinte). Daca nu exista o astfel de variabila, este inspectat obiectul window (in JavaScript, toate variabilele si functiile globale, sunt de fapt membrii unei variabile cu numele window); daca exista aceasta variabila, atunci, ca si in cazul precedent, x-ul din functie este o referinta la window.x. Daca nu exista window.x, este creata o variabila x globala (deci membru al lui window), dar care va fi disponibila numai dupa ce functia noastra va fi apelata, si nu dupa ce functia e definita (JavaScript este un limbaj dinamic). Dupa cum observati, de obicei daca nu folosim cuvantul cheie var nici macar global, vom avea destule probleme, deci este recomandat ca atunci cand folosim pentru prima data o variabila, sa folosim var (acest fapt ajuta si sa stim cand definim prima data variabila, sau cand folosim o variabila definita anterior). Cititi mai multe despre variabilele din JavaScript, in acest articol.
O alta caracteristica a limbajului JavaScript sunt inchiderile (eng. closures): functii care au acces la variabilele externe, chiar dupa ce s-a incheiat executia codului in care era definita variabila. Cel mai simplu mod de a intelege acest concept este rularea catorva exemple, iar acest articol explica destul de bine notiunea.
Cam acestea ar fi elementele caracteristice ale limbajului. In urmatorul articol o sa punem in practica cateva din aceste concepte.

The Introducere in JavaScript by Interfeţe Web, unless otherwise expressly stated, is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.