Javascript linguaggio base

 


 

Javascript linguaggio base

 

Questo sito utilizza cookie, anche di terze parti. Se vuoi saperne di più leggi la nostra Cookie Policy. Scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all’uso dei cookie.I testi seguenti sono di proprietà dei rispettivi autori che ringraziamo per l'opportunità che ci danno di far conoscere gratuitamente a studenti , docenti e agli utenti del web i loro testi per sole finalità illustrative didattiche e scientifiche.

 

 

 

Le informazioni di medicina e salute contenute nel sito sono di natura generale ed a scopo puramente divulgativo e per questo motivo non possono sostituire in alcun caso il consiglio di un medico (ovvero un soggetto abilitato legalmente alla professione).

 

 

 

 

 

Javascript linguaggio base

 

Introduzione a JavaScript

 

Linguaggio di scripting non di programmazione: può controllare il comportamento del browser e il suo contenuto ma non può effettuare elaborazioni grafiche o gestire la rete.

Le caratteristiche peculiari di Javascript sono:

  • Linguaggio interpretato;
  • Linguaggio basato sugli oggetti: object-based  cioè si possono usare proprietà (attributi e metodi) di oggetti predefiniti e crearne di nuovi  (non “orientato” agli oggetti: non si può usare ad esempio il concetto di ereditarietà e polimorfismo ; JavaScript, infatti, non supporta le classi)
  • Linguaggio guidato dagli eventi (event-driven)
  • Il nucleo del linguaggio è incorporato nel browser
  • Esiste in almeno due varianti: lato client (più comune per rendere dinamiche le pagine Web cioè inserisce contenuti eseguibili: programmi che interagiscono con l’utente, controllano browser e creano dinamicamente contenuti HTML nuovi) o lato server.

 

Cosa c’è in Javascript

                                                       
Gli elementi di un programma Javascript possono essere divisi in 5 categorie:

  • variabili e valori

 

  • espressioni ed operatori

• per manipolare i valori

  • strutture di controllo

• per modificare l’ordine di esecuzione

  • funzioni

• per raggruppare blocchi di istruzioni

  • oggetti ed array (con dimensione dinamica, anche non omogenei)

• raggruppamenti di dati e funzioni

 

Commenti in Javascript

Stessa tecnica del C++ o di Java

Commenti su di una singola linea             //
Commenti su più linee                            Inizio commento /*           
Fine commento */

 

Punto e virgola opzionale

Ogni istruzione dovrebbe terminare con il punto e virgola (;)
Può essere omesso se due istruzioni sono separate da un invio     a = 3    
b = 4
Nel seguente caso è obbligatorio    a = 3; b = 4;
Conviene sempre metterlo

 

Identificatori

Un identificatore è semplicemente un nome
In JavaScript gli identificatori si usano per dare un nome a

  • Variabili
  • Funzioni
  • Per fornire delle etichette per alcuni cicli
  • I nomi degli identificatori devono seguire delle regole (le vedremo quando tratteremo le variabili)

 

Letterali

Un letterale è un valore fissato che compare all’interno di un programma JavaScript
Esempi di letterali

  • 12
  • 1.2
  •  “ciao”  //una stringa
  •  'ciao'   // un altro modo per indicare una stringa
  • true, false
  • null

Ci sono anche letterali funzione, letterali oggetto e letterali array

 

Valori

Javascript riconosce i seguenti tipi di valori

  • Numeri
  • Valori booleani
  • Stringhe                            // oggetti interni
  • null                                   // può essere assegnato ad una variabile

• Indica un valore nullo

  • undefined

• Indica che una variabile ha un valore indefinito

 

Numeri interi

 

decimali: (compresi tra – 253e 253)

  • e.g., 77  -9876453

ottali (iniziano con zero):

  • e.g., 077  -09876

esadecimali (iniziano con 0x o 0X):

  • e.g., 0x77  oppure  0X123456789abcDEF

 

Numeri in virgola mobile

 

Notazione standard

  • 1234.567 oppure -1.234

Notazione scientifica                                        (se minori di 1.0e-7 oppure maggiori di 1.0e20)

  • 1.2345e10      1.1234e-11      9. 87E-21

Valore massimo ±1.7976931348623157x10308
Valore minimo ±5x10-324

 

Costanti numeriche speciali

Infinity *  oppure Number.POSITIVE_INFINITY

  • Valore speciale per rappresentare “infinito”

nNaN * oppure Number.NaN

  • Valore speciale per rappresentare un “non-numero”

Number.MAX_VALUE 

  • il più grande numero rappresentabile

Number.MIN_VALUE  

  • il più piccolo numero rappresentabile

Number.NEGATIVE_INFINITY  

  • valore speciale per rappresentare “infinito negativo”

* Non implementate prima di JavaScript1.3

Costanti

 

Variabili a sola lettura

Sono create usando la parola chiave const

  • const sconto=0.1;
  • const nome=“pippo”;

Esistono in JavaScript anche delle costanti predefinite che rappresentano i più comuni valori matematici (accessibili attraverso l’oggetto math)

 

Valori booleani

Possono assumere il valore true o false
JavaScript, se è necessario, converte true in 1 e false in 0

Utilizzo
if (a = = 4)
b = b + 1;
else
a = a + 1;

 

Valori stringa

 

Sono letterali di zero o più caratteri racchiusi tra virgolette doppie (") o singole (')
Esempi 
""        // stringa vuota  
"casa"  
'cassa'
"1234"
"una riga \n un’altra riga"
'nome= "carlo"'        //stringa nome ="carlo"

 

Caratteri speciali

 

Oltre ai caratteri ordinari o a quelli espressi in UNICODE (\uXXXX, dove X è un valore esadecimale), si possono inserire nelle stringhe i seguenti caratteri speciali

  • \' (apice singolo)
  •  \" (apice doppio)
  •  \b (backspace)
  •  \f (form feed)  cioè avanzamento di pagina
  •  \n (interruzione di linea) cioè inizio riga
  • \r (ritorno carrello)
  •  \t (tabulazione)
  • \\ (backslash)
  •  \v (tab. verticale)
  • \0 (carattere NUL)

Parole riservate

 

Sono : abstract / boolean / break / byte / case / catch / char / class / const / continue / debugger / 
default / delete / do / double / else / enum / export / extends / false / final / finally / float /for /
function / goto/ if / implements / import /in /instanceof / int / interface /long /native / new /  
null / package / private /  protected /  public / return / short / static /super / switch /
synchronized / this / throw /throws /transient /true /try /typeof /var /void /volatile /while /with

 

Variabili in Javascript

Le variabili sono nomi simbolici associati a valori in applicazioni Javascript.
I nomi delle variabili devono seguire alcune regole

 

  • Il primo carattere deve essere una lettera, un underscore (_) oppure il segno del dollaro ($)
  • I caratteri seguenti possono essere lettere, cifre, oppure il segno del dollaro (non ci possono essere spazi)
  • Non possono essere uguali a parole riservate

Javascript è case sensitive

  • Var1 e’ diverso da var1

 

Tipo delle variabili

 

Javascript non è un linguaggio tipato

  • Alla stessa variabile possiamo assegnare valori di tipo differente senza generare errori

Esempio
<script type=“ text/javascript” >
<!--
var altezza=2+3.4;
document.write(altezza);          /* funzione predefinita o metodo writeper scrivere sul documento
con documentoggetto browser dipendente o oggetto Navigator */
document.write(“<BR>”);       /* funzione predefinita anche metodo writelnper scrivere nel      
browser la stringa di testo passata come parametro con “a capo” */
altezza=“5.4 metri”;
document.write(altezza);
// -->
</script>

 

Dichiarazione di variabili

Non è necessario dichiarare le variabili anche se è buona norma farlo sempre
Per dichiarare una variabile possiamo semplicemente assegnarle un valore

  •  i =10;                                        // a questo punto i è dichiarata
  •  str = "Ciao \n mondo!";            // a questo punto str è dichiarata

Per dichiarare una variabile si usa la parola chiave var

  • var i;
  • var r, d;
  • var s=“ciao”;

Possiamo dichiarare con var una variabile più di una volta senza causare errori
Se si crea all’interno di una funzione una variabile senza far ricorso a var, allora si crea una variabile globale

 

Inizializzazione di variabili

 

Possiamo inizializzare una variabile quando la dichiariamo

  • var i=10;

Una variabile dichiarata ma non inizializzata è indefinita

  • Se tentiamo di leggere il suo contenuto otteniamo undefined
  • Se tentiamo di accedere ad una variabile non dichiarata otteniamo un errore al runtime

Campo di visibilità di una variabile

 

Esistono solo due campi di visibilità

Locale  – Variabili definite all’interno di una funzione attraverso la parola chiave var

Globale – Variabili definite in qualsiasi punto del documento, ma al di fuori di una funzione; oppure in una funzione senza utilizzare var

In JavaScript non esiste il campo di visibilità di blocco (block scope)

Esempio
function test(o)
{  var i=0;
if(typeof 0 = = “object”)
{  var j;
for(var k=0; k<10; k++)
{document.write(k);}
document.write(j);
}
document.write(i);
}

Le variabili i j e k hanno lo stesso campo di visibilità (scope), quello della funzione. Sono visibili in tutto il corpo della funzione non soltanto nei singoli blocchi.

 

Oggetti in Javascript

 

Un oggetto in JavaScript è una collezione di valori con nome (named values).

JavaScript non supporta le classi e, a differenza di linguaggi OO, usa oggetti di cui può modificare proprietà o  crea tale insieme di dati (attributi) e di funzioni (metodi) con riferimento ad un prototipo cioè la funzione costruttore.

Per far riferimento ad una proprietà di un oggetto si fa riferimento al nome dell’oggetto seguito dal punto (.) e dal nome della proprietà. Con sintassi: nomeOggetto.nomeAttributo

Se la definizione del tipo dell’oggetto contiene una funzione, allora la funzione prende il nome di metodo dell’oggetto ed il named value diventa il nome del metodo.

Per richiedere l’esecuzione di tale funzione si userà sempre la dot-notation con sintassi nomeOggetto.nomeMetodo(par1, par2,..)

Una variabile è fondamentalmente la stessa cosa di una proprietà di un oggetto.

Vediamo un esempio di definizione di prototipo cioè tipo di un oggetto in JavaScript che avviene tramite l'implementazione di quello che viene chiamato metodo 'costruttore'.
Un costruttore, come nei linguaggi OO, non è altro che un metodo che viene richiamato quando l'oggetto viene istanziato e ha il compito di inizializzare la nuova istanza dell'oggetto secondo valori prestabiliti o in base ai parametri ricevuti.
Proviamo a fare una similitudine, così come la matrice rappresenta l'originale da cui stampare le banconote, così il tipo dell'oggetto, consistente nell'elenco di una serie di proprietà e funzioni che ne individuano le caratteristiche ed il comportamento è l'originale da cui, attraverso l'atto dell'istanza generare una variabile avente le sue stesse caratteristiche.

Esempio
Come esempio, proviamo a definire un tipo di oggetto che possa poi essere utilizzato come un'anagrafica e cioè che sia caratterizzato da un nome, un giorno di nascita, un mese, ed un anno.
Si vuole inoltre poter visualizzare nella finestra del browser, all’interno del documento, i dati di quella particolare istanza.
Procediamo quindi a scrivere il costruttore del tipo Anagrafica:
function Anagrafica (Nome, Giorno, Mese, Anno) {

this.Nome = Nome;
this.Giorno = Giorno;
this.Mese = Mese;
this.Anno = Anno;
this.Visualizza = StampaOggetto;
}
La parola chiave this, utilizzata all'interno del costruttore è un modo per far riferimento ad una proprietà dell'oggetto sul quale si lavora.
Nell’esempio proposto sarà necessario aver precedentemente definito la funzione StampaOggetto()
<SCRIPT LANGUAGE="javascript">
<!—
function StampaOggetto(){
document.write ("Dati in archivio:");
document.write ("Nome: "+this.Nome);
document.write ("Giorno: "+this.Giorno);
document.write ("Mese: "+this.Mese);
document.write ("Anno: "+this.Anno);
}

function Anagrafica (Nome, Giorno, Mese, Anno) {
this.Nome = Nome;
this.Giorno = Giorno;
this.Mese = Mese;
this.Anno = Anno;
this.Visualizza = StampaOggetto;
}
//-->
</SCRIPT>

In questo modo, per visualizzare le proprietà di un oggetto di tipo Anagrafica, si istanzia ad esempio con il nome Antonio,
Antonio = new Anagrafica ("Antonio", 11, "Novembre", 1968);
e si chiederà come servizio all’oggetto Antonio di visualizzarle:
Antonio.Visualizza(); // esecuzione del metodo

Codice completo della pagina web: 
da http://www.amagri.it/programmazione/javascript/oggetti.htm


<HTML>
<HEAD>
<SCRIPT LANGUAGE="javascript">
<!--
function StampaOggetto () {
document.write ("Dati in archivio:");
document.write ("<BR>Nome: "+this.Nome);
document.write ("<BR>Giorno: "+this.Giorno);
document.write ("<BR>Mese: "+this.Mese);
document.write ("<BR>Anno: "+this.Anno);
}

function Anagrafica (Nome, Giorno, Mese, Anno) {
this.Nome = Nome;
this.Giorno = Giorno;
this.Mese = Mese;
this.Anno = Anno;
this.Visualizza = StampaOggetto;
}
Antonio = new Anagrafica ("Antonio", 11, "Novembre", 1968); // crea istanza

Antonio.Visualizza(); // esecuzione del metodo
//-->
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>

                                                                                   Effetto

 

In JavaScript si può aggiungere una proprietà ad una particolare istanza di un oggetto. Ad esempio scrivendo:

si aggiunge la proprietà Indirizzo all'istanza Antonio dell'oggetto Anagrafica.

Questa operazione non avrà alcun effetto sugli altri oggetti dello stesso tipo che sono già stati istanziati o che lo saranno in seguito.

Per aggiungere una proprietà ad un oggetto si può utilizzare la parola chiave prototype. In questo caso la proprietà verrà aggiunta alla definizione del tipo dell'oggetto e quindi avrà effetto su tutti gli oggetti già istanziati o che istanzieremo. La sintassi è la seguente:

Anagrafica.prototype.NomeProprietà = ValoreProprietà;

potendo inizializzare ad un valore nullo (uso della parola chiave null) come nel seguente esempio:

Anagrafica.prototype.Indirizzo = null;
Antonio.Indirizzo = "Via Parma, Chiavari;
Claudio.Indirizzo = "Via Merano, Mesagne";

Entrambe le possibilità illustrate per aggiungere proprietà non sono un modo consigliato di procedere; si dovrebbe infatti progettare con attenzione il tipo di oggetto e non modificarne in seguito la definizione.

 

Le principali famiglie di oggetti in Javascript

  • “Riflessi” da HTML (creati automaticamente dal browser per ogni elemento di un documento HTML)

 

  •  Interni o integrati (non legati al browser né al documento HTML: Array, String, Date, Math)
  • Browser-dipendenti (detti oggetti Navigator, “riflessi” dall’ambiente del browser)

 

  • Definiti dall’utente (richiedono prima la definizione di una classe cioè una famiglia di oggetti con le stesse caratteristiche o attributi e comportamenti o metodi  tra i quali il costruttore che servirà ad inizializzare i valori degli attributi poi la creazione con operatore new )

 

L’oggetto globale

Quando l’interprete JavaScript va in esecuzione una delle prime cose che fa è creare un oggetto globale.

Le proprietà di questo oggetto globale sono le variabili dichiarate all’interno di programmi JavaScript.

Quando si dichiara una variabile si sta definendo una proprietà dell’oggetto globale.

L’interprete JavaScript inizializza questo oggetto con altri valori e funzioni predefinite.

Per far riferimento a questo oggetto in codice javaScript che non fa parte di funzioni possiamo usare la parola chiave this

  • All’interno di funzioni this ha un significato differente (è un riferimento all’oggetto corrente)

 

  • In JavaScript lato client l’oggetto Window serve da oggetto globale (è il padre della gerarchia che contiene document che contiene oggetti “riflessi” da HTML quali links, … imagesforms contenitore di elements quali text, button etc… Ogni discendente è una proprietà dell’antenato)
  • Per far riferimento a this possiamo usare la proprietà auto-referenziale window dell’oggetto globale Window

 

Il call object

Le variabili locali (quelle dichiarate all’interno di una funzione) sono anch’esse proprietà di un oggetto chiamato call object.

Il “tempo di vita” di un call object è la durata dell’esecuzione della funzione a cui è associato.

 

 

 

Espressioni ed operatori

 

Espressione

Un’espressione è una frase JavaScript che l’interprete JavaScript può valutare per produrre un valore. Un’espressione è un insieme valido di letterali, variabili, operatori ed espressioni che una volta valutata produce un singolo valore; il valore può essere un numero, una stringa o un valore logico (true/false).
Il valore di un’espressione letterale è il valore del letterale stesso

  • “casa”

Il valore di un’espressione variabile è il valore che la variabile contiene o a cui fa riferimento

  • a = 5;

È possibile combinare delle espressioni attraverso degli operatori per ottenere espressioni più complesse

 

Tipi di operatori

Unario

  • L’operatore ha un solo operando Ad esempio, -3

Binario

  • L’operatore ha due operandi. Ad esempio, 3+4

Ternario

  • L’operatore ha tre operandi. Ad esempio, a < 4 ? 3 : 4;

Operatori aritmetici

x + y addizione
x – y sottrazione
x * y moltiplicazione
x / y divisione, restituisce double
++i   incremento prefisso
i++  incremento postfisso
--i   decremento prefisso
i--  decremento postfisso
-i           negazione
x % y     modulo

 

Operatori relazionali

Restituiscono un valore booleano
x > y maggiore di
x >= y maggiore o uguale a
x < y minore di
x <= y minore o uguale a
a in x  vero se a è una proprietà dell’oggetto x
y istanceof x vero se y è un’istanza della classe x

Esempio di in ed istanceof

var point = {x:1, y:1};                        // x è un oggetto
if (x in point)
{         // istruzioni da eseguire}
var theDay=new Date(2003, 4, 29)
if (theDay instanceof Date)
{         // istruzioni da eseguire       }

 

Operatori di uguaglianza

a = = b uguaglianza – Restituisce vero se a e b sono uguali anche dopo conversioni

  • 3 = = “3”restituisce vero

a =  = = b identità  – Restituisce vero se a e b sono uguali e sono dello stesso tipo

  • 3 = = = “3”restituisce falso
  •  

Operatori di disuguaglianzana

a != b disuguaglianza      – Restituisce vero se a e b sono diversi anche dopo conversioni

  • 3 != “2” restituisce vero
  • a != = b non-identità – Restituisce vero se a e b non sono identici
  • 3 != = “3” restituisce vero

Operatori su stringhe

Tutti gli operatori di relazione già visti
+ concatenazione                                          // conversione implicita : prevale string
"Ciao a voi " + 3; => "Ciao a voi 3"      
L’operatore + usato con stringhe e numeri non è associativo:
1 + 2 + "gattini";    produce "3 gattini"
"gattini:" + 1 + 2;    produce "gattini: 12"

conversione implicita da stringa a numerico: uso di operatore * che opera solo su operandi numerici:  X = “3” * 5     =>    X  15

 

Ancora su stringhe

Fate attenzione al confronto tra stringhe: la stringa “Casa” viene prima di abaco”

  • In UNICODE (ma anche in ASCII) le lettere maiuscole vengono prima delle minuscole

Per convertire un numero x nella stringa "x" è sufficiente scrivere ""+x

  • ""+3     produce "3"

Operatori logici

&& AND logico. Ad esempio    expr1 && expr2

|| OR logico. Ad esempio            expr1 || expr2

! NOT logico. Ad esempio          !expr

Le espressioni logiche vengono valutate da sinistra verso destra; l’interpretazione si arresta appena diventa noto il valore dell’espressione
– 7 < 10 || “espressione”           “espressione” non verrà mai valutata

 

Operatori bitwise

Lavorano sui bit che rappresentano i loro operandi
&      AND bitwise
|        OR bitwise
^       XOR bitwise
~       NOT bitwise
<<    shift verso sinistra (x << 3;)                     // moltiplicare per 2n_posizioni
>>    shift verso destra (x >> 4;)                       // dividere per 2n_posizioni
>>>  shift verso destra con riempimento di 0

 

Assegnamento

Il più semplice tipo di operatore =
Esempi
– x=3;     str=“casa”;

 

Assegnamento multiplo

  • x = y = z = 0;

Esistono altri operatori di assegnamento che sono la forma abbreviata di operazioni standard
– E.g., x+=3; equivalente a x=x+3;

 

Forma abbreviata

x += y equivale a x = x + y
x -= y equivale a x = x - y
x *= y equivale a x = x * y
x /= y equivale a x = x / y
x %= y equivale a x = x % y
x <<= y equivale a x = x << y
x >>= y equivale a x = x >> y
x >>>= y equivale a x = x >>> y
x &= y equivale a x = x & y
x ^= y equivale a x = x ^ y
x |= y equivale a x = x | y

 

Operatore condizionale

Unico operatore ternario in JavaScript
Sintassi :        (condizione) ? expr1 : expr2

  • restituisce la valutazione di expr1 se condizione è vera, altrimenti restituisce la valutazione di expr2
  • expr1 e expr2 possono avere tipi diversi

Operatore typeof

L’operatore typeof restituisce una stringa che indica il tipo dell’operando
Sintassi:             typeof operando       oppure        typeof (operando)

Esempio

if (typeof a = = "string")                                         // tipo di dato primitivo string
document.write(a + " &egrave; una stringa");

Esempi di typeof
–    typeof  parseInt                  restituisce la stringa "function"

  • typeof undefinedVariable  restituisce "undefined"
  • typeof 33                            restituisce "number"
  • typeof "Ciao"                     restituisce "string"
  • typeof true                          restituisce "boolean"
  • typeof null                          restituisce "object"

 

 

 

Operatore void

L’operatore void specifica un’espressione che deve essere valutata senza restituire un valore
Sintassi:            void espressione      oppure      void (espressione)

Esempio di uso di void

Il seguente codice crea un link che fa aprire una nuova finestra del browser:
<a href=“ javascript:void window.open();” >Apri una nuova finestra </a>

Usato in concomitanza degli eventi (onClick, onMouseOver, … .)

 

Operatore virgola

Valuta il suo operando sinistro poi quello destro e restituisce il valore del suo operando destro

Esempio

  • i=0, j=1, k=2;    assegna 0 ad i, 1 a j, e 2 a k e restituisce il valore 2

Altri operatori

new      – Serve a creare istanze di oggetti
delete   – Serve a rimuovere proprietà di oggetti
()         – Operatore chiamata a funzione
[] e .    – Operatori di accesso ad array ed oggetti. Si ricordi che gli oggetti array in JavaScript hanno
dimensione  dinamica e possono essere anche non omogenei.

 

Istruzioni

Istruzioni JavaScript

In JavaScript la più semplice istruzione è un’espressione che ha un effetto collaterale

  • s = 4 + i;      oppure     cont++;

In JavaScript possiamo combinare, usando le parentesi graffe più istruzioni in una singola istruzione o istruzione blocco
{  x = Math.PI;
cx = Math.cos(x);
alert("cos(" + x + ") = " + cx);
}

Istruzioni condizionali

Un’istruzione condizionale è un insieme di comandi che vengono eseguiti se una condizione specificata è vera

if               con sintassi:   if (espressione) istruzioni

if else       con sintassi:   if (espressione) istruzioni1 else istruzioni2

if else if   con sintassi:   if (espressione1) istruzioni1else if (espressione2) istruzioni2 else istruzioni3

 

 

Istruzione switch

Un’istruzione switch permette ad un programma di valutare un espressione e confrontare il valore dell’espressione con un’etichetta (label) case.

Se si trova una corrispondenza, allora il programma esegue l’istruzione associata

La label può essere una qualsiasi espressione arbitraria, non necessariamente una costante al tempo di compilazione come accade per il C, C++ o Java

Sintassi

switch (espressione)
{
case label1 :istruzione1;
break;
case label2 :istruzione2;
break;
...
default : istruzionen;
}

Può essere:
case 60*60*24:
case Math.PI:
case n+1:
case a[0]:
Esempio

switch (fruits)
{
case "Oranges" :document.write("Oranges are $0.59 a pound.<BR>");
break;
case "Apples" :document.write("Apples are $0.32 a pound.<BR>");
break;
case "Bananas" :document.write("Bananas are $0.48 a pound.<BR>");
break;
case "Cherries" :document.write("Cherries are $3.00 a pound.<BR>");
break;
default :document.write("Sorry, we are out of " + i + ".<BR>");
}

 

 

Istruzioni di ciclo

 

Un ciclo è un insieme di comandi che vengono eseguiti ripetutamente fino a quando una condizione specificata è soddisfatta. Semplificano azioni ripetitive:
while
do while
for
for in
Ciclo for
Sintassi:               for (assegnamento; condizione; incremento) istruzioni

Esempi
for (count = 0; count < 10; count++)
document.write(count + "<br>");

for (i = 0, j = 10 ; i < 10 ; i++, j--)      // opzionali
sum += i * j;

Ciclo while
Sintassi:               while (condizione) {istruzioni}

Esempio
var count = 0;
while (count < 10)
{
document.write(count + "<br>");
count++; 
}

 

Ciclo do while
Sintassi:               do {istruzione} while (condizione );

Esempio
var i=0;
do {
i+=1;
document.write(i);
} while (i<5);

 

Ciclo for in
Sintassi:              for (variable in object) statement

Esempio
for (prop in my_object)
{
nome= "Nome: " + prop;
valore= "Valore: " + my_object[prop];
document.write(nome + " - " +valore+ "<br>");
}

 

label

Con una label possiamo fornire un identificativo ad un’istruzione. È usata in un ciclo in concomitanza con break o continue

Sintassi                       label:istruzione

Esempio                      markLoop: while (theMark = = true) doSomething();

break
Con break forziamo l’uscita dal ciclo più interno che lo racchiude o da uno switch

Sintassi:         break        oppure       break label;

Esempio

for (i = 0; i < a.length; i++)
{
if (a[i] == target)
break;
}

continue
È usato solo all’interno di un ciclo, interrompe il ciclo e va a controllare la condizione

Sintassi:          
continue      oppure  continue label;

Esempio          i = 0;
n = 0;
while (i < 5)  {           i++;
if (i = = 3)
continue;
n += i;
}

Esempio di continue con label

checkiandj :while (i<4)  {
document.write(i + "<BR>");
i+=1;
checkj :while (j>4)  {
document.write(j + "<BR>");
j-=1;
if ((j%2)= =0)
continue checkiandj;
document.write(j + " is odd.<BR>");
}
document.write("i = " + i + "<br>");
document.write("j = " + j + "<br>");
}

 

Istruzione with

L’istruzione with stabilisce l’oggetto di default per un insieme di istruzioni
Sintassi:    with (oggetto){istruzioni }

Per identificativo che compare in istruzioni si verifica se è una proprietà di oggetto
L’uso di with rallenta l’esecuzione

Esempio di with                     x = Math.sin(i * Math.PI / 20);
y = Math.cos(i * Math.PI / 30);
Può essere trasformato in

with(Math) {
x = sin(i * PI / 20);
y = cos(i * PI / 30);
}

Istruzioni non ancora esaminate

function                  – Definizione di funzioni
throw                      – Generazione di un’eccezione
try/catch/finally     – Meccanismo di gestione delle eccezioni

 

 

Modalità di inserimento in pagine web ed esecuzione: sintesi

 

Le istruzioni JavaScript possono essere inserite in modi diversi:

1. all'interno degli script (tra i tag <SCRIPT>);

2. caricandole da un file esterno specificando un file come sorgente JavaScript; può essere utile
quando questo script debba essere utilizzato su più pagine.

Le istruzioni JavaScript possono essere eseguite in modi diversi:

1. In seguito all'attivazione di un evento, solitamente come gestore di eventi all’interno di certi tag
HTML.Gli eventi si possono attivare, forzandoli, anche all'interno degli script, come se fossero
delle proprietà dell'oggetto:
Oggetto.gestore_evento = handler_code;

Ad un evento può essere associata un’unica istruzione, ma di solito l'associazione viene fatta con un blocco di istruzioni: tale funzione, attivata dal gestore di evento (event handler del tipo onNome_Evento) è detta handler code facendo riferimento alla funzione implementata dall’utente che realizza la  risposta all’evento.

È caso particolare la pressione su pulsante di tipo submitcontrollo in un form –  che lancia in esecuzione il codice eseguibile impostato come valore dell'atttributo action del form stesso:

<form action ="javascript: comando">
<input type="submit" value="Esegui">
</form>

2. in luogo di un link nella forma <A HREF = "javascript: comando">, inserendo un’espressione
JavaScript come valore di un attributo HTML

3. valori JavaScript possono essere richiamati dall'HTML “al volo” includendoli tra i caratteri &{ e
};%.  Occorre osservare che sotto Internet Explorer queste espressioni non sono gestite.


              da P.Gallo, F.Salerno “ HTML, CSS, Javascript“ Minerva Italica

              Per un’introduzione al confronto con un linguaggio Orientato agli Oggetti (Java)

              da Carlo Blundo “Tecnologie di Sviluppo per il WEB”

              Una specie di struttura in C; in genere si fa riferimento ai named values con il nome di proprietà

              Una pagina web viene scomposta da JavaScript in un modello ad oggetti (ognuno con le sue proprietà) in relazione reciproca. Oggetti  “di livello massimo” nella gerarchia degli oggetti JavaScript: Window, document, location, navigator e history

 

Fonte: http://www33.brinkster.com/4binf/dispense/Linguaggio%20javaScript.doc

Sito da visitare: http://www33.brinkster.com/

Autore del testo: non indicato nel documento di origine

Parola chiave google : Javascript linguaggio base tipo file : doc

 

 

 

 

Visita la nostra pagina principale

 

Javascript linguaggio base

 

Termini d' uso e privacy

 

 

 

 

Javascript linguaggio base