Number() converte un numero, String() converte in una stringa, Boolean() converte un valore booleano.
Tipi di dati JavaScript
In JavaScript ci sono 5 diversi tipi di dati che possono contenere valori:
- string
- number
- boolean
- object
- function
Ci sono 3 tipi di oggetti:
- Object
- Date
- Array
E tipi di dati 2 che non possono contenere valori:
- null
- undefined
Il typeof Operatore
È possibile utilizzare l' typeof all'operatore di trovare il tipo di dati di una variabile JavaScript.
Esempio
typeof "John"
// Returns string
typeof 3.14
// Returns number
typeof NaN
// Returns number
typeof false
// Returns boolean
typeof [1,2,3,4] // Returns object
typeof {name:'John', age:34}
// Returns object
typeof new Date()
// Returns object
typeof function () {} // Returns function
typeof myCar
// Returns undefined (if myCar is not declared)
typeof null
// Returns object
Prova tu stesso " Si prega di osservare:
- Il tipo di dati di NaN è il numero
- Il tipo di dati di una array è oggetto
- Il tipo di dati di una date è oggetto
- Il tipo di dati null è oggetto
- Il tipo di dati di una undefined variabile non è definita
Non è possibile utilizzare typeof per determinare se un oggetto JavaScript è un array (o una data).
Il Tipo di dati di typeof
Il typeof operatore non è una variabile. È un operatore. Operatori ( + - * / ) non hanno alcun tipo di dati.
Ma, il typeof operatore restituisce sempre una stringa contenente il tipo dell'operando.
Il constructor proprietà
Il constructor proprietà restituisce la funzione di costruzione per tutte le variabili JavaScript.
Esempio
"John".constructor
// Returns function String() { [native code] }
(3.14).constructor
// Returns function Number() { [native code] }
false.constructor
// Returns function Boolean() { [native code] }
[1,2,3,4].constructor
// Returns function Array() { [native code] }
{name:'John', age:34}.constructor
// Returns function Object() { [native code] }
new Date().constructor
// Returns function Date() { [native code] }
function () {}.constructor
// Returns function Function(){ [native code] }
Prova tu stesso " È possibile controllare la proprietà constructor per scoprire se un oggetto è un array (contiene la parola "Array" ):
Esempio
function isArray(myArray) {
return myArray.constructor.toString().indexOf("Array") > -1;
}
Prova tu stesso " È possibile controllare la proprietà constructor per scoprire se un oggetto è una data (contiene la parola "Date" ):
Esempio
function isDate(myDate) {
return myDate.constructor.toString().indexOf("Date") > -1;
}
Prova tu stesso " JavaScript Tipo conversione
variabili JavaScript possono essere convertiti in una nuova variabile e un altro tipo di dati:
- Con l'utilizzo di una funzione JavaScript
- Automaticamente da JavaScript sé
Conversione dei numeri in stringhe
Il metodo globale String() in grado di convertire i numeri in stringhe.
Può essere utilizzato su qualsiasi tipo di numeri, letterali, variabili o espressioni:
Esempio
String(x) // returns a string from a number variable x
String(123) // returns a string from a number literal 123
String(100 + 23) // returns a string from a number from an expression
Prova tu stesso " Il metodo numero toString() fa lo stesso.
Nel capitolo Metodi numerici , troverete più metodi che possono essere utilizzati per convertire i numeri in stringhe:
metodo | Descrizione |
---|---|
toExponential() | Restituisce una stringa, con un numero arrotondato e scritto utilizzando la notazione esponenziale. |
toFixed() | Restituisce una stringa, con un numero arrotondato e scritto con un numero specificato di decimali. |
toPrecision() | Restituisce una stringa, con un numero scritto con una lunghezza specificata |
Conversione booleani di stringhe
Il metodo globale String() in grado di convertire in stringhe booleani.
String(false) // returns "false"
String(true) // returns "true"
Il metodo booleano toString() fa lo stesso.
false.toString() // returns "false"
true.toString() // returns "true"
Conversione Date da stringhe
Il metodo globale String() in grado di convertire le date per le stringhe.
String(Date()) // returns Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)
Il metodo Data toString() fa lo stesso.
Esempio
Date().toString() // returns Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)
Nel capitolo Metodi Data , troverete più metodi che possono essere utilizzati per convertire le date per le stringhe:
metodo | Descrizione |
---|---|
getDate() | Prendi il giorno come numero (1-31) |
getDay() | Prendi il giorno della settimana un numero (0-6) |
getFullYear() | Ottenere l'anno a quattro cifre (aaaa) |
getHours() | Ottenere l'ora (0-23) |
getMilliseconds() | Ottenere i millisecondi (0-999) |
getMinutes() | Ottenere i minuti (0-59) |
getMonth() | Prendi il mese (0-11) |
getSeconds() | I secondi (0-59) |
getTime() | Prendi il tempo (millisecondi dal 1 gennaio 1970) |
Conversione stringhe in numeri
Il metodo globale Number() in grado di convertire stringhe in numeri.
Stringhe contenenti numeri (come "3.14" ) vengono convertiti in numeri (come 3.14).
Le stringhe vuote convertono a 0.
Tutto il resto si trasforma in NaN (Not a Number).
Number("3.14") // returns 3.14
Number(" ") // returns 0
Number("") // returns 0
Number("99 88") // returns NaN
Nel capitolo Metodi numerici , troverete più metodi che possono essere utilizzati per convertire stringhe in numeri:
metodo | Descrizione |
---|---|
parseFloat() | Analizza una stringa e restituisce un numero in virgola mobile |
parseInt() | Analizza una stringa e restituisce un intero |
Il unario + Operator
Il unario + operatore può essere utilizzato per convertire una variabile di un numero:
Se la variabile non può essere convertito, sarà ancora diventare un numero, ma con il valore NaN (non un numero):
Conversione booleani di Numbers
Il metodo globale Number() può anche convertire booleani ai numeri.
Number(false) // returns 0
Number(true) // returns 1
Conversione Date da Numbers
Il metodo globale
d = new Date();
Number(d) // returns 1404568027739
Il metodo data getTime() fa lo stesso.
d = new Date();
d.getTime() // returns 1404568027739
Tipo conversione automatica
Quando JavaScript cerca di operare su un tipo di dati "sbagliato", cercherà di convertire il valore di un tipo di "diritto".
Il risultato non è sempre quello che ci si aspetta:
5 + null // returns 5
because null is converted to 0
"5" + null // returns "5null"
because null is converted to "null"
"5" + 2 // returns
52
because 2 is converted to "2"
"5" - 2 // returns 3
because "5" is converted to 5
"5" * "2" // returns
10 because "5" and "2" are
converted to 5 and 2
Prova tu stesso " Conversione automatica String
JavaScript chiama automaticamente della variabile toString() funzione quando si tenta di "uscita" di un oggetto o di una variabile:
document.getElementById("demo").innerHTML = myVar;
// if myVar = {name:"Fjohn"} // toString converts to "[object Object]"
// if myVar = [1,2,3,4] // toString converts to "1,2,3,4"
// if myVar = new Date() // toString converts to "Fri Jul 18 2014 09:08:55 GMT+0200"
Numeri e valori booleani vengono convertiti, ma questo non è molto visibile:
// if myVar = 123 // toString converts to "123"
// if myVar = true // toString converts to "true"
// if myVar = false // toString converts to "false"
Tabella JavaScript Tipo conversione
Questa tabella mostra il risultato della conversione di diversi valori JavaScript per numero, stringa, e booleano:
Originale Valore | convertito per numero | convertito accordare | convertito a booleano | Provalo |
---|---|---|---|---|
false | 0 | "false" | false | Provalo " |
true | 1 | "true" | true | Provalo " |
0 | 0 | "0" | false | Provalo " |
1 | 1 | "1" | true | Provalo " |
"0" | 0 | "0" | true | Provalo " |
"1" | 1 | "1" | true | Provalo " |
NaN | NaN | "NaN" | false | Provalo " |
Infinity | Infinity | "Infinity" | true | Provalo " |
-Infinity | -Infinity | "-Infinity" | true | Provalo " |
"" | 0 | "" | false | Provalo " |
"20" | 20 | "20" | true | Provalo " |
"twenty" | NaN | "twenty" | true | Provalo " |
[ ] | 0 | "" | true | Provalo " |
[20] | 20 | "20" | true | Provalo " |
[10,20] | NaN | "10,20" | true | Provalo " |
["twenty"] | NaN | "twenty" | true | Provalo " |
["ten","twenty"] | NaN | "ten,twenty" | true | Provalo " |
function(){} | NaN | "function(){}" | true | Provalo " |
{ } | NaN | "[object Object]" | true | Provalo " |
null | 0 | "null" | false | Provalo " |
undefined | NaN | "undefined" | false | Provalo " |
I valori tra virgolette indicano valori di stringa.
I valori rossi indicano i valori (alcuni) i programmatori potrebbero non aspettare.