Coercion-Methode: 1. Verwenden Sie die Methode ToString(), ToNumber() oder ToBoolean(). 2. Verwenden Sie die Methode String(), Number() oder Boolean(). 3. Verwenden Sie den Operator „+“ oder „-“. . Verwenden Sie Anweisungen wie „if()“ und „while()“.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.
Für gewöhnliche Objekte wird die Methode Object.prototype.toString() aufgerufen, sofern Sie die toString-Methode nicht selbst definieren Hat Ihre eigene toString-Methode, die Stringifizierung ruft diese Methode auf und verwendet ihren Rückgabewert.
2.ToNumber
Für Basistypen wird true in 1 umgewandelt, false wird in 0 umgewandelt;
let a = { valueOf:function(){ return "42"; } }; let b = { toString:function(){ return "42"; } }; let c = [4,2]; c.toString = function(){ return this.join(""); //"42" }; Number(a); //42 Number(b); //42 Number(c); //42 Number(''); //0 Number([]); //0 Number(["abc"];//NaN
Werte in JavaScript können in zwei Kategorien unterteilt werden: Werte, die auf „falsch“ erzwungen werden können, und Werte, die auf „wahr“ erzwungen werden können. Falscher Wert:
undefiniert
let a1 = new Boolean( false ); let b1 = new Number( 0 ); let c1 = new String( "" ); let d1 = Boolean(a1 && b1 && c1); //true let a2 = []; let b2 = {}; let c2 = function(){}; let d2 = Boolean(a2 && b2 && c2); //true
2. Erzwungene Typkonvertierung anzeigen
Die Konvertierung zwischen Zeichenfolgen und Zahlen erfolgt über String(.. ) und
Number(..)sind zwei integrierte Funktionen. Zusätzlich zu String(..) und Number(..) gibt es noch andere Möglichkeiten, eine explizite Konvertierung zwischen Strings und Zahlen zu erreichen:
let a = 42; let b = a.toString(); let c = "3.14"; let d = +c; b; // "42" d; // 3.14
2. Explizite Konvertierung in Boolean
let a = "0";
let b = [];
let c = {};
let d = "";
let e = 0;
let f = null;
let g;
Boolean( a ); // true
Boolean( b ); // true
Boolean( c ); // true
Boolean( d ); // false
Boolean( e ); // false
Boolean( f ); // false
Boolean( g ); // false
kann sowohl für die numerische Addition als auch für die Zeichenfolgenverkettung verwendet werden.
Wenn einer der Operanden von + eine Zeichenfolge ist (oder eine Zeichenfolge erhalten, indem Sie die abstrakte ToPrimitive-Operation darauf aufrufen), führen Sie die Aktion aus String-Verkettung; andernfalls digitale Addition durchführen. Da die valueOf()-Operation des Arrays keinen einfachen Grundwert erhalten kann, ruft sie stattdessen toString() auf. Die beiden Arrays im Beispiel unten werden also zu „1,2“ und „3,4“. + Verketten Sie sie und geben Sie „1,23,4“ zurück.
let a = "0"; let b = []; let c = {}; let d = ""; let e = 0; let f = null; let g; !!a; // true !!b; // true !!c; // true !!d; // false !!e; // false !!f; // false !!g; // false
let a = "42"; let b = "0"; a + b; // "420" let c = 42; let d = 0; c + d; // 42 let x = [1,2]; let y = [3,4]; x + y; // "1,23,4"
Gemäß den Regeln für abstrakte ToPrimitive-Operationen ruft a + „“ die valueOf()-Methode für a auf und konvertiert dann den Rückgabewert über die abstrakte ToString-Operation in eine Zeichenfolge. String(a) ruft ToString() direkt auf. Sie geben schließlich Zeichenfolgen zurück, aber wenn a ein Objekt und keine Zahl ist, kann das Ergebnis anders ausfallen a zu einer Zahl. Sie können auch ein * 1 und ein /1 verwenden, da diese beiden Operatoren nur für Zahlen gelten, eine solche Verwendung ist jedoch weniger verbreitet. (1) Bedingte Ausdrücke in if (..)-Anweisungen. (2) Der bedingte Ausdruck (zweiter) in der for ( .. ; .. ; .. )-Anweisung. (3) Bedingte Ausdrücke in while (..)- und do..while(..)-Schleifen. (4) :Bedingter Urteilsausdruck in. (5) Der Operand auf der linken Seite des logischen Operators || (logisches ODER) und && (logisches UND) (als bedingter Ausdruck). Im obigen Fall werden nicht-boolesche Werte implizit in boolesche Werte umgewandelt, wobei die zuvor eingeführten Regeln für abstrakte ToBoolean-Operationen befolgt werden. Weitere Kenntnisse zum Thema Programmierung finden Sie unter: Einführung in die Programmierung! ! Das obige ist der detaillierte Inhalt vonSo führen Sie eine erzwungene Typkonvertierung in Javascript durch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!let a = 42;
let b = a + "";
b; // "42"