JavaScript-Typenkonvertierung

Number() Konvertieren Sie numerische Werte,String() Konvertieren Sie Zeichenfolgen,Boolean() Konvertieren Sie Boolean-Werte.

JavaScript-Datentypen

In JavaScript gibt es fünf DatenTypen, die Werte enthalten können:

  • Zeichenkette (string)
  • Zahl (number)
  • Boolscher (boolean)
  • Objekt (object)
  • Funktion (function)

Es gibt drei Arten von Objekten:

  • Objekt (Object)
  • Datum (Date)
  • Array (Array)

Es gibt zwei Datentypen, die keine Werte enthalten können:

  • null
  • undefined

typeof-Operator

Sie können typeof Verwenden Sie die Operator, um den Datentyp eines JavaScript-Variables zu bestimmen.

Beispiel

typeof "Bill"                 // Rückgabe "string"
typeof 3.14                   // Rückgabe "number"
typeof NaN                    // Rückgabe "number"
typeof false                  // gibt "boolean" zurück
typeof [1,2,3,4]              // gibt "object" zurück
typeof {name:'Bill', age:62}  // gibt "object" zurück
typeof new Date()             // gibt "object" zurück
typeof function () {}         // gibt "function" zurück
typeof myCar                  // gibt "undefined" zurück *
typeof null                   // gibt "object" zurück

Probieren Sie es selbst aus

Bitte beachten Sie:

  • Der Datentyp von NaN ist numerisch
  • Der Datentyp von Array ist Objekt
  • Der Datentyp von Datum ist Objekt
  • Der Datentyp von null ist Objekt
  • Der Datentyp einer nicht definierten Variable ist undefined
  • Der Datentyp einer Variable, die noch nicht zugewiesen wurde, ist auch undefined

Man kann nicht typeof kann man bestimmen, ob ein JavaScript-Objekt ein Array (oder ein Datum) ist.

Die Datentypen von typeof

typeof Der Operator ist kein Variable. Er gehört zu den Operatoren. Operatoren (z.B. + - * /) gibt keinen Datentyp zurück.

aber,typeof wird immerGibt einen String zurückenthält den Typ des Operanden).

Konstruktor-Eigenschaft

constructor Die Eigenschaft gibt den Konstruktorfunktion aller JavaScript-Variablen zurück.

Beispiel

"Bill".constructor                 // gibt "function String()  { [native code] }" zurück
(3.14).constructor                 // gibt "function Number()  { [native code] }" zurück
false.constructor                  // gibt "function Boolean() { [native code] }" zurück
[1,2,3,4].constructor              // gibt "function Array()   { [native code] }" zurück
{name:'Bill', age:62}.constructor  // gibt "function Object()  { [native code] }" zurück
new Date().constructor             // Rückgabe "function Date()    { [native code] }"
function () {}.constructor         // Rückgabe "function Function(){ [native code] }"

Probieren Sie es selbst aus

Sie können überprüfen, constructor Eigenschaft, um zu bestimmen, ob ein Objekt ein Array ist (enthalten den Worten "Array"):

Beispiel

function isArray(myArray) {
    return myArray.constructor.toString().indexOf("Array") > -1;

Probieren Sie es selbst aus

Oder noch einfacher, Sie können überprüfen, ob ein Objekt eine Array-Funktion ist:

Beispiel

function isArray(myArray) {
    return myArray.constructor === Array;

Probieren Sie es selbst aus

Sie können überprüfen, constructor Eigenschaft, um zu bestimmen, ob ein Objekt ein Datum ist (enthalten den Worten "Date"):

Beispiel

function isDate(myDate) {
    return myDate.constructor.toString().indexOf("Date") > -1;

Probieren Sie es selbst aus

Oder noch einfacher, Sie können überprüfen, ob ein Objekt ein Datumsfunktion ist:

Beispiel

function isDate(myDate) {
    return myDate.constructor === Date;

Probieren Sie es selbst aus

JavaScript-Typenkonvertierung

JavaScript-Variablen können in neue Variablen und in einen anderen Datentyp umgewandelt werden:

  • Durch die Verwendung von JavaScript-Funktionen
  • Durch JavaScript selbstAutomatischUmwandlung

Numerische Werte in Strings umwandeln

Globale Methode String() Es kann Zahlen in Strings umwandeln.

Es kann für alle Arten von Zahlen, Texten, Variablen oder Ausdrücken verwendet werden:

Beispiel

String(x)         // Rückgabe eines Strings aus der numerischen Variable x
String(123)       // Rückgabe eines Strings aus dem numerischen Text 123
String(100 + 23)  // Rückgabe eines Strings aus einem numerischen Wert in einer Ausdrucksform

Probieren Sie es selbst aus

Zahlenmethoden toString() Gleiches gilt auch.

Beispiel

x.toString()
(123).toString()
(100 + 23).toString()

Probieren Sie es selbst aus

InZahlenmethodenIn diesem Kapitel werden Sie mehr Methoden lernen, die zur Konvertierung von numerischen Werten in Strings verwendet werden können:

Methode Beschreibung
toExponential() Rückgabe eines Strings, bei dem die Zahl gerundet wird und in Exponentenschreibweise dargestellt wird.
toFixed() Rückgabe eines Strings, bei dem die Zahl gerundet wird und eine bestimmte Anzahl von Dezimalstellen verwendet wird.
toPrecision() Rückgabe eines Strings, um Zahlen auf eine angegebene Länge zu schreiben.

Boolesches in String konvertieren

Globale Methode String() Kann Boolesches in Strings konvertieren.

String(false)        // gibt "false" zurück
String(true)         // gibt "true" zurück

Boolsche Methoden toString() Gleiches gilt auch.

false.toString()     // gibt "false" zurück
true.toString()      // gibt "true" zurück

Datum in String konvertieren

Globale Methode String() Daten in Strings konvertieren

String(Date())      

Datumsmethoden toString() Gleiches gilt auch.

Beispiel

Date().toString()   

InDatumsmethodenIn diesem Kapitel finden Sie weitere Methoden, um Daten in Strings zu konvertieren:

Methode Beschreibung
getDate() Tag (1-31) als Wert erhalten
getDay() oder als Wert (0-6) der Woche
getFullYear() Vierstellige Jahre (yyyy) erhalten
getHours() Stunde (0-23) erhalten
getMilliseconds() Millisekunden (0-999) erhalten
getMinutes() Minuten (0-59) erhalten
getMonth() Monat (0-11) erhalten
getSeconds() Sekunden (0-59) erhalten
getTime() Zeit erhalten (Millisekunden seit dem 1. Januar 1970)

String in numerische Werte konvertieren

Globale Methode Number() String in Zahl konvertieren

Strings, die Zahlen enthalten (z.B. "3.14"), werden in Zahlen konvertiert (z.B. 3.14).

leere Strings in 0 konvertiert.

Andere Strings werden in NaN(Not a number,not a number)。

Number("3.14")    // gibt 3.14 zurück
Number(" ")       // gibt 0 zurück
Number("")        // gibt 0 zurück
Number("99 88")   // gibt NaN zurück

InZahlenmethodenIn diesem Kapitel finden Sie weitere Methoden, um Strings in Zahlen zu konvertieren:

Methode Beschreibung
parseFloat() den String analysieren und eine Fließkommazahl zurückgeben.
parseInt() den String analysieren und eine Ganzzahl zurückgeben.

unärer + Operator

unärer + OperatorKann verwendet werden, um Variablen in Zahlen zu konvertieren:

Beispiel

var y = "5";      // y ist ein String
var x = + y;      // x ist eine Zahl

Probieren Sie es selbst aus

Wenn eine Variable nicht in eine Zahl konvertiert werden kann, bleibt sie dennoch eine Zahl, aber der Wert ist NaN(Not a number):

Beispiel

var y = "Bill";   // y ist ein String
var x = + y;      // x ist eine Zahl (NaN)

Probieren Sie es selbst aus

Boolesche in numerische Werte konvertieren

Globale Methode Number() Man kann auch Boolesche in Zahlen konvertieren.

Number(false)     // gibt 0 zurück
Number(true)      // gibt 1 zurück

Datum in eine Nummer konvertieren

Globale Methode Number() kann verwendet werden, um Daten in eine Nummer zu konvertieren.

d = new Date();
Number(d)          

Datumsmethoden getTime() Gleiches gilt auch.

d = new Date();
d.getTime()        

Automatische Typkonvertierung

Wenn JavaScript versucht, mit einem "falschen" Daten Typ umzugehen, versucht er, diesen Wert in den "richtigen" Typ zu konvertieren.

Das Ergebnis ist nicht immer das, was Sie erwarten:

5 + null    // gibt 5 zurück         weil null in 0 konvertiert wird
"5" + null  // gibt "5null" zurück   weil null in "null" konvertiert wird
"5" + 2     // gibt 52 zurück        weil 2 in "2" konvertiert wird
"5" - 2     // gibt 3 zurück         weil "5" in 5 konvertiert wird
"5" * "2"   // gibt 10 zurück        weil "5" und "2" in 5 und 2 konvertiert werden

Probieren Sie es selbst aus

automatische Strings-Transformation auf

JavaScript ruft automatisch die toString() Funktion, wenn Sie versuchen, ein "Objekt" oder eine "Variable" auszugeben:

document.getElementById("demo").innerHTML = myVar;
// Wenn myVar = {name:"Fjohn"}  // toString wird zu "[object Object]"
// Wenn myVar = [1,2,3,4]       // toString wird zu "1,2,3,4"
// Wenn myVar = new Date()      // toString wird zu ""

Zahlen und Boolesche Werte werden ebenfalls konvertiert, aber nicht sichtbar:

// Wenn myVar = 123             // toString wird zu "123"
// Wenn myVar = true            // toString wird zu "true"
// Wenn myVar = false           // toString wird zu "false"

Tabelle der Typumwandlungen in JavaScript

Im folgenden Tisch sind die Ergebnisse der Konvertierung verschiedener JavaScript-Werte in Zahlen, Zeichenfolgen und Boolesche Werte aufgelistet:

Ursprünglicher Wert In Zahlen umwandeln In Zeichenfolgen umwandeln In logische Werte umwandeln Versuchen Sie es selbst
false 0 "false" false Versuchen Sie es selbst
true 1 "true" true Versuchen Sie es selbst
0 0 "0" false Versuchen Sie es selbst
1 1 "1" true Versuchen Sie es selbst
"0" 0 "0" true Versuchen Sie es selbst
"000" 0 "000" true Versuchen Sie es selbst
"1" 1 "1" true Versuchen Sie es selbst
NaN NaN "NaN" false Versuchen Sie es selbst
Infinity Infinity "Infinity" true Versuchen Sie es selbst
-Infinity -Infinity "-Infinity" true Versuchen Sie es selbst
"" 0 "" false Versuchen Sie es selbst
"20" 20 "20" true Versuchen Sie es selbst
"zwanzig" NaN "zwanzig" true Versuchen Sie es selbst
[ ] 0 "" true Versuchen Sie es selbst
[20] 20 "20" true Versuchen Sie es selbst
[10,20] NaN "10,20" true Versuchen Sie es selbst
["zwanzig"] NaN "zwanzig" true Versuchen Sie es selbst
["zehn","zwanzig"] NaN "zehn,zwanzig" true Versuchen Sie es selbst
function(){} NaN "function(){}" true Versuchen Sie es selbst
{ } NaN "[object Object]" true Versuchen Sie es selbst
null 0 "null" false Versuchen Sie es selbst
undefined NaN "undefined" false Versuchen Sie es selbst

Der Wert in Anführungszeichen zeigt einen Stringwert an.

Rote WerteZeigt (bestimmte) Werte an, die ein Programmierer vielleicht nicht erwartet.