HOME

Contatti

MATEMATICA CON JAVASCRIPT


PROPRIETA' GLOBALI O DI SISTEMA


NaN   Infinity   undefined
A
rgomenti correlati


Proprietà

 Elementi distintivi degli oggetti che vengono utilizzati per visualizzarne o impostarne i valori.
In altri termini, attraverso le proprietà è possibile caratterizzare un oggetto: ad esempio, lo sfondo di una pagina potrebbe essere rosso, un modulo potrebbe tre caselle di testo, e così via.
Le proprietà possono appartenere a oggetti diversi, come ad esempio la proprietà length, che appartiene agli array, alle stringhe, e non solo.

Metodi

 Le azioni che gli oggetti possono compiere.
Ad esempio, un pulsante può fare clic, una finestra può essere chiusa, un testo può essere selezionato.
Anche i metodi possono appartenere a diversi oggetti, come il metodo concat(), che appartiene sia alle stringhe che agli array.

NOTA BENE : Potremmo immaginare le proprietà come attributi, e i metodi come verbi.

Oggetti, proprietà e metodi vengono legati dal punto.


window.prompt(), window.alert()

 Metodi dell'oggetto window

Math.sqrt(x)

 Metodo dell'oggetto Math che restituisce la radice quadrata di x, se x ≥ 0, altrimenti viene restituito NaN

Math.pow(base,esponente)

 Metodo dell'oggetto Math che restituisce la potenza del primo argomento (base) elevato al secondo argomento (esponente)

APPROFONDIMENTO SUI METODI MATEMATICI

== === !=

 Operatori di confronto.

APPROFONDIMENTO SUGLI OPERATORI

IsNaN(argomento)

 Funzione globale che restituisce true (vero) se argomento non è un numero (NaN).
ESEMPIO DI CODICE
alert(isNaN("Ciao"))
RISULTATO
true
parseInt() 
 Funzione globale che permette di ottenere la parte intera di un numero da una stringa. Se questo non è possibile viene restituito NaN.
ESEMPIO DI CODICE
parseInt("10.98")
RISULTATO
10
eval() 
 Funzione globale che valuta un argomento o esegue un'espressione
ESEMPIO DI CODICE
eval("'ciao'=='ciao'")
RISULTATO
true
ESEMPIO DI CODICE
eval("2+2")
RISULTATO
4

APPROFONDIMENTO SULLE FUNZIONI GLOBALI

 


Le forme indeterminate, in matematica, sono

∞ - ∞   ∞ / ∞   0/0   0 * ∞   1   ∞ 0   0 0

Con javascript si ottiene:

Infinity - Infinity = NaN
 
Infinity / Infinity = NaN
 
0/0 = NaN
 
0* Infinity = NaN
 
Math.pow(1,Infinity) = NaN
 
Per javascript però non sono indeterminate le forme
Math.pow(Infinity,0) = 1
 
Math.pow(0,0) = 1
 

Inoltre in matematica una frazione con denominatore zero, e numeratore diverso da zero, non ha significato.

Per javascript invece risulta, ad esempio

 1 / 0 = Infinity
-1 / 0 = -Infinity
 

 


Si definiscono proprietà globali, o di sistema, quelle che non appartengono a un oggetto specifico.

Ad esempio, la costante di Eulero, e ≈ 2.7183, è una proprietà dell'oggetto Math, e infatti si scrive Math.E; anche la funzione predefinita per calcolare il valore assoluto di un numero, il metodo Math.abs(x), appartiene all'oggetto Math.

Analogamente scriviamo window.open() o document.write( ) e così via.

In generale si usa il codice oggetto.proprietà oppure oggetto.funzione per indicare una proprietà o una funzione predefinita di un oggetto.

Invece le proprietà e le funzioni globali, o di sistema, che, come abbiamo detto, non appartengono ad alcun oggetto, non sono precedute da nomi di oggetti e punti.

PROPRIETÀ PREDEFINITE GLOBALI: NaN    
NaN
Valore che rappresenta Not - a - Number (non è un numero).


QUANDO SI OTTIENE NaN COME RISULTATO

Esempi Codice Risultato
Si tenta di estrarre la radice quadrata del numero negativo -4.
alert(Math.sqrt(-4));
NaN
Si tenta di trasformare in numero intero la stringa "ciao".
alert(parseInt("ciao"));
NaN
Si cerca di calcolare 0/0.
alert(0/0);
NaN
In generale si ottiene NaN quando javascript non riesce a eseguire un'operazione matematica. Questo è importante perché così non si ha un errore o crash.

Attenzione però, l'espressione

eval("ciao") dà invece errore.
alert(1/0) = Infinity.

ALTRE CARATTERISTICHE DI NaN

  1. NaN non è uguale a nessun altro valore, nemmeno a se stesso. In particolare
    NaN == NaN è falso; NaN === NaN è falso; NaN != NaN è vero.
  2. Per javascript NaN è un numero, infatti, se applichiamo l'operatore typeof a un'espressione che dà risultato NaN, otteniamo number.

    ESEMPIO

    Codice: alert(typeof(0/0));
    Risultato: number

    In conclusione, per controllare se un valore non è un numero conviene usare la funzione isNaN()

    ESEMPIO

    Codice: alert(isNaN(0/0));
    Risultato: true

  3. NaN è assorbente nel senso che, per ogni numero n e per ogni operazione ● si ha
    n ● NaN = NaN ● n = NaN

    ESEMPIO

    Codice: alert(NaN + 5);
    Risultato: NaN

    Codice: alert(NaN + "5");
    Risultato: non si apre la finestra di alert

PROPRIETÀ PREDEFINITE GLOBALI: ± Infinity    
  1. Infinity
    Valore numerico che si ottiene a partire da 1.7976931348623157e+308, che è il massimo numero rappresentabile in virgola mobile.
  2. -Infinity
    Valore numerico che si ottiene a partire da -1.7976931348623157e+308, che è il minimo numero rappresentabile in virgola mobile.

NOTA - In matematica, ovviamente, i numeri sono infiniti, e quindi ± 1.7976931348623157e+308 sono numero finiti come gli altri; esistono comunque notevoli analogie con le operazioni fra infiniti e ± Infinity, in particolare per le forme indeterminate.

In particolare

Infinity - Infinity = NaN
Come ∞ - ∞ Indeterminato
Infinity / Infinity = NaN
Come ∞ / ∞ Indeterminato
0/0 = NaN
Come 0 / 0 Indeterminato
0* Infinity = NaN
Come 0 * ∞ Indeterminato
Math.pow(1,Infinity) = NaN
Come 1 Indeterminato
Per javascript però non sono indeterminate le forme
Math.pow(Infinity,0) = 1
Mentre ∞ 0 Indeterminato
Math.pow(0,0) = 1
Mentre 0 0 Indeterminato
PROPRIETÀ PREDEFINITE GLOBALI: undefined    

undefined (indefinito): indica che a una variabile non è stato assegnato un valore.

PRIMO ESEMPIO

Codice:

var x;
document.write('x = ' + x)

Risultato: x = undefined

In questo caso la variabile x è stata dichiarata, ma non le è stato assegnato alcun valore.

SECONDO ESEMPIO

Codice:

x = window.prompt('Inserisci un numero');
document.write(x==undefined)

Risultato: false

In questo caso la variabile x viene rilevata da una finestra di dialogo, ma non è mai indefinita, anche se lasciamo vuota la casella di testo per immetterne il valore: è come se avessimo dichiarato var x = "".

 


INDICE

©2002 - 2012 www.webfract.it