Javascript 3
Transcript
Javascript 3
Funzioni in JavaScript Listruzione function Una Una funzione è un insieme di istruzioni JavaScript che esegue un compito specifico Per usare una funzione bisogna prima definirla, poi lo script può invocarla In JavaScript esistono tre modi per definire una funzione Javascript 3 Le funzioni Attraverso listruzione function Attraverso il costruttore Function Attraverso una funzione letterale Tecnologie di Sviluppo per il WEB parti funzione è composta da quattro La parola chiave function Il nome della funzione Una lista opzionale di parametri racchiusa da parentesi tonde Il corpo della funzione (serie di istruzioni JavaScript) racchiusi da parentesi graffe Non occorre dichiarare il tipo della funzione 2 Tecnologie di Sviluppo per il WEB Sintassi Esempi 1 Esempi 2 function nome_funzione ( argomenti ) { function quadrato(number) { return number * number; } Il istruzioni JavaScript } I nomi delle funzioni sono degli identificatori, quindi si applicano le stesse regole viste per i nomi da assegnare alle variabili Tecnologie di Sviluppo per il WEB 4 return è opzionale function print(msg) { document.write(msg + "<BR>"); } Dopo che una funzione è stata definita può essere invocata attraverso loperatore di chiamata function distanza(x1, y1, x2, y2) { var dx = (x2 - x1); var dy = (y2 - y1); return Math.sqrt(dx*dx + dy*dy); } Tecnologie di Sviluppo per il WEB 3 print("Ciao a tutti! "); 5 Tecnologie di Sviluppo per il WEB 6 Funzioni ricorsive Argomenti di una funzione Dove definire le funzioni? È Il Possono possibile definire funzioni ricorsive Att.ne: passando oggetti, modificarne le loro proprietà function fattoriale(x) { if (x <= 1) return 1; else return x * fattoriale(x-1); } Tecnologie di Sviluppo per il WEB essere passati un numero variabili di argomenti In più od in meno di quelli specificati nella definizione della funzione Vedremo in seguito come accedere a tutti gli argomenti passati 7 Permette di definire delle funzioni in maniera dinamica Il costruttore si aspetta un numero variabili di argomenti di tipo stringa Per definire una funzione che non prende argomenti, è sufficiente passare a Function() solo il corpo della funzione Tecnologie di Sviluppo per il WEB Tecnologie di Sviluppo per il WEB 10 La cosa migliore è definire tutte nella sezione HEAD Meglio ancora, mettiamole in un file esterno con estensione .js Le possiamo riusare facilmente Tecnologie di Sviluppo per il WEB 9 Funzioni come dati In JavaScript le funzioni sono viste come dati, quindi possono anche essere var f = new Function("x", "y", "return x*y;"); comparire in qualsiasi punto del documento HTML 8 Utilizzo del costruttore Function() Lultimo argomento è il corpo della funzione contiene istruzioni JavaScript arbitrarie separate da punto e virgola Tutti gli altri argomenti specificano i nomi degli argomenti della funzione che si sta definendo possiamo Possono Il costruttore Function() passaggio avviene per valore assegnate a variabili memorizzate nelle proprietà di oggetti memorizzate come elementi di un array passate come argomento di una funzione restituite come valore da una funzione Per invocare la funzione appena definita si usa f(3,4); var g = new Function("x", "return x*x;"); var hi = new Function("alert(Ciao a tutti);"); Tecnologie di Sviluppo per il WEB 11 Tecnologie di Sviluppo per il WEB 12 Funzioni letterali 1 Funzioni letterali 2 Una Funzioni funzione letterale è unespressione che definisce una funzione senza nome La sintassi di una funzione letterale è molto simile a quella dellistruzione function tranne per il fatto che: è usata come unespressione piuttosto che come unistruzione non è necessario specificare il nome della funzione Tecnologie di Sviluppo per il WEB 13 Altri esempi di funzioni letterali Tecnologie di Sviluppo per il WEB Definizione e memorizzazione a[0] = function(x) { return x*x; }; Definizione di una funzione e suo passaggio ad unaltra ogg.sort(function(a,b) {return a-b;} ); var f = function(x) { return x*x; }; Definizioni più o meno equivalenti sono: var f = new Function(x, return x*x;); function f(x) { return x*x; } 14 Scoping lessicale Esempi di funzioni letterali definite in questo modo sono a volte chiamate funzioni lambda Sono utili quando devono essere usate una sola volta e non gli si deve assegnare un nome Possono essere memorizzate in una variabile, passate come argomento di una funzione o invocate direttamente Tecnologie di Sviluppo per il WEB 15 Dinamico vs lessicale In JavaScript le funzioni hanno uno scoping lessicale (statico) invece di dinamico Ciò significa che sono in esecuzione nell ambiente (scope) in cui sono state definite non nello scope in cui sono invocate Fanno parte dello scope variabili locali ed argomenti della funzione Supponiamo che una funzione utilizzi un simbolo non definito al suo interno Con lo Scoping Lessicale La funzione usa la definizione che il simbolo ha nell'ambiente in cui la funzione è definita Con lo Scoping Dinamico usa la definizione che esso ha nell'ambiente in cui la funzione è chiamata Definizione ed invocazione var cento = (function(x) { return x*x; }) (10); Tecnologie di Sviluppo per il WEB 16 Tecnologie di Sviluppo per il WEB 17 Tecnologie di Sviluppo per il WEB 18 Esempio var x = 10; function provaScope(y) { return y + x; } alert(provaScope(7)); // Visualizza 17 function testEnv() { var x = -1; return provaScope(7); // Cosa visualizza ? } Con lo scopinig lessicale visualizza 17 Con lo scoping dinamico visualizza 6 Tecnologie di Sviluppo per il WEB 19 Esempio 1 function max() { var m = Number.NEGATIVE_INFINITY; for(var i = 0; i < arguments.length; i++) if (arguments[i] > m) m = arguments[i]; return m; } var massimo = max(10, 32, 2, 3, 43, 4, 5, 30, 6); Tecnologie di Sviluppo per il WEB 22 Loggetto arguments 1 Loggetto arguments 2 Ogni Per volta che una funzione viene invocata, oltre alloggetto call viene creato loggetto arguments Contiene i parametri della funzione e il nome (la proprietà callee) della funzione che è stata invocata In questo modo si possono gestire funzioni con un numero variabili di argomenti accedere al primo parametro della funzione si usa arguments[0] In generale per accedere al parametro i-esimo si usa arguments[i-1] Per sapere quanti parametri sono stati passati alla funzione si usa la proprietà length: (arguments.length) Il nome della funzione invocata è memorizzata nella proprietà callee: (arguments.callee) Tecnologie di Sviluppo per il WEB Tecnologie di Sviluppo per il WEB 20 Esempio 2 Numero di argomenti di una funzione function f(x, y, z) { if (arguments.length != 3) { msg= "La funzione f è chiamata con "; msg+= arguments.length; msg+= " argomenti, ma ne aspetta 3."; alert( msg ); return null; } // esecuzione della funzione f... } Possiamo Tecnologie di Sviluppo per il WEB 21 anche verificare con quanti argomenti è stata definita una funzione andando ad esaminare la proprietà length delloggetto funzione arguments.callee.length Questa proprietà non deve essere confusa con arguments.length È disponibile sia allinterno che allesterno della funzione 23 Tecnologie di Sviluppo per il WEB 24 Esempio Funzioni globali JavaScript 1 function check( param ) { var attuali = param.length; vat attesi = param.callee.length; if (attuali != attesi) return false; else return true; } // nella funzione da verificare if(check(arguments)) . Tecnologie di Sviluppo per il WEB Riceve in input una stringa e restituisce una stringa in cui tutti gli spazi, simboli di punteggiatura, caratteri accentati ed ogni altro carattere che non fa parte dellinsieme dei caratteri ASCII sono codificati in un formato esadecimale che può essere rappresentato su qualsiasi piattaforma 25 Tecnologie di Sviluppo per il WEB Riceve in input una stringa che rappresenta del codice javaScript da eseguire. Linterprete JavaScript valuta il codice e lo esegue quando la funzione eval è invocata. Tecnologie di Sviluppo per il WEB 27 In JavaScript un oggetto è un insieme di identificatori dotato di un nome non è un linguaggio orientato agli oggetti Ogni identificatore è interpretabile come una proprietà delloggetto, può essere un dato oppure una funzione Le proprietà sono come i membri delle classi in C++ o Java supporta leredità basata su classi Non può supportare il polimorfismo Ha Riceve in input un argomento e restituisce true se il valore dellargomento non è un numero; altrimenti, restutisce false. Gli oggetti in JavaScript 1 JavaScript Non isNaN(val) 26 JavaScript e gli oggetti eval(str) isFinite(val) Riceve in input un argomento numerico e restituisce true se il valore dellargomento è diverso da NaN, Number.POSITIVE_INFINITY o Number.NEGATIVE_INFINITY; altrimenti, restutisce false. unescape(str) Riceve in input una stringa e restituisce una stringa in cui tutti i caratteri precedentemente codificati con la funzione escape sono decodificati Funzioni globali JavaScript 3 Funzioni globali JavaScript 2 escape(str) uneredità basata su prototipi Una cosa abbastanza differente da quello cui siete abituati con C++ o Java Tecnologie di Sviluppo per il WEB 28 Tecnologie di Sviluppo per il WEB 29 Tecnologie di Sviluppo per il WEB 30 Le classi e JavaScript Creazione di oggetti in JavaScript In Javascript non esistono classi Un oggetto è un insieme di proprietà, ognuna avente un nome ed un valore La struttura di oggetto Javascript viene definita dal costruttore usato per crearlo A partire da Javascript 1.2, si possono creare oggetti anche elencando direttamente una sequenza di coppie nome:valore separate da virgole: var o = { x:10, y:7 }; Elenco di proprietà con i rispettivi valori La sequenza di coppie è racchiusa fra parentesi graffe Tecnologie di Sviluppo per il WEB 31 È possibile, a prescindere da come un oggetto è stato definito, aggiungere o rimuovere proprietà delloggetto È possibile aggiungere dinamicamente nuove proprietà semplicemente nominandole e usandole: o.z = -1; // {x:7, y:2} diventa {x:7, y:2, z:-1} Si possono rimuovere dinamicamente delle proprietà mediante l'operatore delete: delete o.x // {x:7, y:2, z:-1} diventa {y:2, z:-1} Tecnologie di Sviluppo per il WEB 34 o.x=3; //il valore della proprietà x diventa 3 Per evitare di ripetere il nome delloggetto si può usare il costrutto with with (o) { x=7; y=2; } Tecnologie di Sviluppo per il WEB 33 La parola chiave this Definire metodi è semplicemente un caso particolare dell'aggiunta di proprietà o.getX = function() { return this.x; } Allinterno del metodo, per far riferimento alle altre proprietà delloggetto si deve usare la parola chiave this seguita dal punto e dal nome della proprietà Il metodo definito vale per il solo oggetto a cui è stato aggiunto (e.g., o) Tecnologie di Sviluppo per il WEB le proprietà sono pubbliche, possiamo accedere ad esse tramite la dot notation 32 Metodi per singoli oggetti Aggiunta e rimozione di proprietà Tecnologie di Sviluppo per il WEB Accesso alle proprietà Tutte 35 Allinterno di metodi la parola chiave this rappresenta lindirizzo delloggetto corrente, quello a cui appartiene il metodo Senza this avremmo fatto riferimento allambiente locale del metodo getX() Verrebbe segnalato un errore se non esistesse una variabile globale chiamata x (locale, se fosse stata definita). Tecnologie di Sviluppo per il WEB 36 Un altro modo per creare oggetti Il costruttore 1 Per creare un oggetto vuoto si può usare la seguente notazione var oggetto = new Object(); Object() è un costruttore che restituisce un oggetto vuoto Senza nessuna proprietà dobbiamo settarle noi a mano Si può fare di meglio Tecnologie di Sviluppo per il WEB settata, Il costruttore 2 Un qualsiasi oggetto in Javascript può essere costruito da una speciale funzione chiamata costruttore All'interno del costruttore si specificano le proprietà (iniziali) dell' oggetto, elencandole con la dot notation e la parola chiave this Stabilisce come l'oggetto è fatto specificando le sue proprietà Il nome del costruttore è deciso dallutente I costruttori sono invocati mediante l'operatore new Allinterno del costruttore, per far riferimento alle proprietà delloggetto si deve usare la parola chiave this seguita dal punto e dal nome della proprietà 37 Tecnologie di Sviluppo per il WEB 38 this rappresenta lindirizzo delloggetto corrente quello che è stato creato con loperatore new Tecnologie di Sviluppo per il WEB Esempio di Oggetto 1 Esempio di Oggetto 2 Esempio di Oggetto 3 Tipo function Orologio(ore, minuti) { function SettaOra(ore, minuti) { oggetto this.ore = ore; Orologio Proprietà this.ore=ore; this.minuti=minuti; } this.minuti = minuti; Ore Minuti function DammiOra() { this.SettaOra = SettaOra; var msg = this.ore+":"+this.minuti; this.DammiOra = DammiOra; Metodi document.write("<p>Sono le "+msg); } } DammiOra SettaOra 39 Notate lassenza delle parentesi per metodi Senza this avremmo fatto riferimento allambiente locale della funzione Orologio o a quello globale var orario = new Orologio(09, 32); orario.DammiOra(); esempio orario.SettaOra(10,32); orario.DammiOra(); Tecnologie di Sviluppo per il WEB 40 Tecnologie di Sviluppo per il WEB 41 Tecnologie di Sviluppo per il WEB 42 Simulare proprietà private Oggetti come array associativi 1 Le proprietà di un oggetto sono pubbliche, si possono "simulare" proprietà private, tramite variabili locali della funzione costruttore tal caso loggetto è visto come un array associativo invece di accedere ad un elemento di un array tramite un indice vi accediamo tramite un nome 43 Math Number Rappresenta valori numerici primitivi Object RegExp String Contiene le funzionalità di base condivise da tutti gli oggetti JavaScript Tecnologie di Sviluppo per il WEB Rappresenta una data Function Specifica una funzione rappresentata come stringa Tecnologie di Sviluppo per il WEB 45 È constructor creare un oggetto Object() si usa la seguente sintassi NuovoOggetto = new Object(); 46 Rappresenta un valore booleano Date Proprietà e metodi di Object 1 Per Rappresenta una stringa Boolean Loggetto Object Possono essere sovrascritti Rappresenta unespressione regolare Array 44 la superclasse che contiene tutte le caratteristiche di tutti gli oggetti JavaScript Tutti i suoi metodi e le sue proprietà sono ereditati da tutti gli altri oggetti Fornisce costanti e funzioni matematiche di base Tecnologie di Sviluppo per il WEB ha un insiemi di oggetti predefiniti istanziabili attraverso gli opportuni costruttori rappresenta un array In Core-Object 2 possibile accedere alle proprietà di un oggetto come se loggetto stesso fosse un array var p = {x:3, y:4); vx = p["x"]; Rettangolo = function() { var lunghezza, altezza; this.setL = function(x) { lunghezza = x; } this.setA = function(y) { altezza = y; } this.getL = function() { return lunghezza; } this.getA = function() { return altezza; } } Tecnologie di Sviluppo per il WEB È Core-Object 1 JavaScript Tecnologie di Sviluppo per il WEB 47 Proprietà che identifica il costruttore delloggetto Spesso usato allinterno di un if else var p1 = new Punto2D(1,1); if(p1.constructor == Punto2D ) alert("p1 è di tipo Punto2D"); else alert("Non conosco il tipo di p1"); Tecnologie di Sviluppo per il WEB 48 Proprietà e metodi di Object 2 Restituisce una stringa che rappresenta il tipo e/o il valore di un oggetto su cui è invocato toLocaleString() Risultato <SCRIPT TYPE="text/javascript"> function print(msg) {document.write(msg)} var d = new Date(); print(d+"<br>"); print("<b>toString</b> <br>" + d.toString() +"<br>"); print("<b>toLocaleString</b> <br>"+d.toLocaleString()); Simile a toString(), ma restituisce una stringa localizzata La stringa dipende dalla lingua supportata dal browser che esegue il codice Esempio toString() hasOwnProperty(nome) Restituisce true se loggetto ha una proprietà (non ereditata) che si chiama nome, false altrimenti Versione inglese di Netscape7 </SCRIPT> esempio Tecnologie di Sviluppo per il WEB 49 Tecnologie di Sviluppo per il WEB 50 Tecnologie di Sviluppo per il WEB Oggetto Array 1 Oggetto Array 2 Accesso ad array Costrutto Altri Per fondamentale nei linguaggi di programmazione permette di iterare su insiemi di oggetti gli oggetti possono avere tipi diversi Non evitare di accedere a posizioni di un array che sono undefined è sufficiente utilizzare del codice simile al seguente modi per definire un array var nome = new Array(el0, el1, ..., elN-1) var nome = new Array(lunghezza) Le seguenti istruzioni creano un array di due elementi lungo 1000 occorre dimensionare larray var a = new Array(); a[0] = 1; a[999]="casa"; basta var pippo = new Array( ) Possiamo conoscere la sua lunghezza tramite la proprietà read-only length Tecnologie di Sviluppo per il WEB 51 Larray è sparso occupa solo due posizioni, le altre hanno un valore undefined 52 Tecnologie di Sviluppo per il WEB 53 for(var i =0; i<a.length; i++) if(a[i] != undefined) { msg = "Posizione: " + i + " Valore: " + a[i]; document.write(msg); } Tecnologie di Sviluppo per il WEB 54 Metodi di Array 1 Metodi di Array 2 concat Crea un nuovo array contenente gli elementi dellarray su cui è invocato seguito dai suoi argomenti. Se qualcuno degli argomenti è un array, esso è appiattito ed i suoi elementi sono aggiunti al nuovo array NuovoArray = a.concat(3,5,6) NuovoArray = a.concat(array1) NuovoArray = a.concat(5,7,array2,6) gli Tecnologie di Sviluppo per il WEB Elementi cancellati da a Aggiunge uno o più elementi alla fine dellarray e restituisce lultimo elemento aggiunto Tecnologie di Sviluppo per il WEB Aggiunge e/o rimuove elementi da un array NuovoArray = a.splice(PI, NE,el1, eln) eli può essere un array che non viene appiattito sort Ordina gli elementi di un array (ordinamento alfabetico) a.sort(); 58 unshift Aggiunge uno o più elementi allinizio di un array spostanto gli elementi già presenti in avanti push NuovaLunghezza = a.unshift(3,4,5,6) slice Estrae una sezione di un array restituendone uno nuovo NuovoArray = a.slice(PuntoIniziale, NumeroElementi) 56 Tecnologie di Sviluppo per il WEB Oggetto Date Costruttori Favorisce la gestione delle date Convenzione UNIX: memorizzato in millisecondi a partire dal 1/1/1970 La data attuale dipende dalla macchina client Non ha proprietà e, grossomodo, ha tre tipi di metodi: NuovoArray = a.splice(PuntoIniziale) NuovoArray = a.splice(PuntoIniziale, NumeroElementi) Tecnologie di Sviluppo per il WEB primo = a.shift() Rimuove e restituisce lultimo elemento dallarray 55 Rimuove elementi da un array pop ultimo = a.push(el1, ..., elN) Metodi di Array 4 splice a.reverse() shift Rimuove e restituisce il primo elemento da un array spostando tutti gli altri elementi di una posizione Inverte il contenuto di un array Str = a.join(sepatatore); Se non si specifica separatore è usata la virgola ultimo = a.pop(); join Restituisce una stringa contenente tutti elementi dellarray separati da separatore Metodi di Array 3 reverse getX per ottenere informazioni setX per modificare alcuni dati toX per convertire in formati diversi Tecnologie di Sviluppo per il WEB 59 57 Date() Date(millisecondi) Date(stringa) Date(Y,M,D,H,M,S,ms) M da 0 a 11 D da 1 a 31 H da 0 a 23 M da 0 a 59 S da 0 a 59 ms da 0 a 999 Tecnologie di Sviluppo per il WEB 60 Metodi di Date Loggetto String Esempio getDate() Loggetto <SCRIPT TYPE="text/javascript"> s1 = new String("1+1"); s2 = "1+1"; if(s1 == s2) alert("sono uguali"); esempio else alert("sono diverse"); document.write("primo eval <br>"); document.write(eval(s1)+"<br>"); document.write("secondo eval <br>"); document.write(eval(s2)+"<br>"); </SCRIPT> String, è un wrapper alla stringa letterale I metodi che possiamo applicare su String li possiamo applicare anche su una stringa qualsiasi Una stringa letterale è convertita in un oggetto String automaticamente, e viceversa, ogni volta che è necessario Ha una sola proprietà: length Esistono comunque delle differenze getFullYear() getHours() getMilliseconds() getMinutes() getMonth() getSeconds() getYear() Tecnologie di Sviluppo per il WEB 61 Metodi di String 1 Tecnologie di Sviluppo per il WEB 62 Tecnologie di Sviluppo per il WEB Metodi di String 2 Metodi di String 3 testo.split(separatore); testo.indexOf(parola,inizio); 63 stringa.charAt(i); Restituisce li-esimo carattere di testo (da 0 a stringa.length-1) stringa.slice(start,end); Restituisce la sottostringa di testo dalla posizione start a end-1 Se start è negativo specifica una posizione dalla fine della stringa stringa.substring(from,to); Restituisce la sottostringa di testo dalla posizione from a to-1 stringa.substr(start,length); Restituisce la sottostringa di testo lunga length caratteri che parte dalla posizione start Tecnologie di Sviluppo per il WEB 64 Restituisce un array di stringhe, dividendo testo in sottostringhe in corrispondenza di ogni occorrenza della stringa separatore È lopposto di Array.join() testo.toLowerCase(); restituisce una copia della stringa testo con tutti i caratteri convertiti in minuscolo testo.toUpperCase(); restituisce una copia della stringa testo con tutti i caratteri convertiti in maiuscolo testo.charCodeAt(i); restituisce il codice Unicode delli-esimo carattere di testo (da 0 a testo.length-1) Tecnologie di Sviluppo per il WEB 65 restituisce la posizione della prima occorrenza della stringa parola nella stringa testo (a partire dalla posizione inizio). Se non esiste, restituisce 1 Se inizio non è specificato la ricerca inizia dalla posizione zero testo.lastIndexOf(parola,inizio); come il metodo precedente, ma restituisce la posizione dellultima occorrenza testo.concat(testo1,testo2, ); restituisce una nuova stringa ottenuta concatenando testo con testo1, testo2, È equivalente a testo+testo1+testo2+ Tecnologie di Sviluppo per il WEB 66 String ed HTML Loggetto Math Esistono Per vari metodi che permettono di generare codice HTML Ad esempio testo.bold(); restituisce la stringa testo racchiusa tra i tag <B> e </B> Costanti matematiche 1 favorire calcoli matematici, JavaScript incapsula costanti e funzioni (avanzate) utili nelloggetto contenitore Math Non si può usare come String, Date, Array per crearne nuove istanze dettagli sul manuale JavaScript Tecnologie di Sviluppo per il WEB Tecnologie di Sviluppo per il WEB logaritmo in base 2 di e Math.PI Math.SQRT1_2 Math.SQRT2 Math.LN10 Math.LN2 Math.LOG10E costante di Eulero e (base del logaritmo naturale) logaritmo naturale di 10 logaritmo in base 10 di e 68 Funzioni matematiche 1 Math.LOG2E logaritmo naturale di 2 costanti matematiche sono sue proprietà (tutte con nomi in maiuscolo) Le funzioni sono suoi metodi 67 Costanti matematiche 2 Math.E Si tratta di una sorta di oggetto statico Le Ulteriori Tecnologie di Sviluppo per il WEB Funzioni matematiche 2 Math.abs(x) Math.max(x,y) Math.min(x,y) Math.pow(x,y) Math.sqrt(x) restituisce il valore assoluto di x Math.ceil(x) Math.floor(x) Math.round(x) la costante pi-greco restituisce il massimo tra x e y restituisce lintero immediatamente superiore a x 1 diviso √2 restituisce il minimo tra x e y restituisce lintero immediatamente inferiore a x restituisce il xy (x alla potenza y) restituisce √x (radice quadrata di x) arrotonda x allintero più vicino √2 Tecnologie di Sviluppo per il WEB 70 Tecnologie di Sviluppo per il WEB 69 71 Tecnologie di Sviluppo per il WEB 72 Funzioni matematiche 3 Math.sin(x) Math.cos(x) Math.tan(x) restituisce il seno di x Numeri casuali Arrotondamenti Math.random() A restituisce il coseno di x La seguente funzione restituisce un numero casuale tra 1 e numero restituisce la tangente di x Math.exp(x) Math.log(x) Math.round(x) restituisce loge x arrotonda x allintero più vicino 73 Tecnologie di Sviluppo per il WEB Oggetto Boolean Oggetto Number Permette Rappresenta valori numerici primitivi Number.POSITIVE_INFINITY Number.NaN di convertire valori non-booleani in booleani Può essere usato come un booleano Si usa la seguente sintassi 74 Number.MAX_VALUE Number.MIN_VALUE Number.NEGATIVE_INFINITY espressioni regolari sono dei pattern usati per far corrispondere combinazioni di caratteri in stringhe. In JavaScript le espressioni regolari sono anche degli oggetti Questi pattern sono usati con i metodi exec e test di RegExp, e con i metodi match, replace, search, e split di String var pattern = /s$/; var pattern = new RegExp(s$); il più grande numero rappresentabile il più piccolo numero rappresentabile Rappresenta infinito negativo Tecnologie di Sviluppo per il WEB 76 Tecnologie di Sviluppo per il WEB 75 Oggetto RegExp Rappresenta infinito Se valore è pari a false, 0, null, , oppure è omesso allora boolvar vale false; altrimenti, vale true Tecnologie di Sviluppo per il WEB Le Rappresenta un non-numero var boolvar = new Boolean( valore ) volte è necessario arrotondare un numero per un fissato numero di cifre decimali (e.g., conversione Lira/Euro) La seguente funzione serve allo scopo function arrotonda(numero,decimali) { var potenza = Math.pow(10,decimali); return Math.round(numero * potenza)/potenza; } function genera(numero) { var x = Math.random() * numero; return Math.floor(x)+1; } restituisce ex Tecnologie di Sviluppo per il WEB restituisce un numero pseudo-casuale compreso tra 0 e 1 77 Tecnologie di Sviluppo per il WEB 78