1. Implizite KonvertierungWas ist das Ergebnis der Ausführung der folgenden Anweisung? A. undefined == null B. isNaN("100") C. parseInt("1a") === 1 D. [ ] Instanz von Array Antwort:
Konvertierung in doppeltes GleichheitszeichenSchauen wir uns nach dem Aufwärmen einen Codeabschnitt an: Wenn ([]) { konsole.log(true); } Das Ergebnis stimmt. Tatsächlich ist [] falsch, denn beim Vergleichen von Gleichheitszeichen werden, wenn auf einer Seite ein Boolescher Wert steht, die Daten auf beiden Seiten zuerst in eine Zahl umgewandelt. Zahl([]); // 0 Zahl (falsch); // 0 Daher ist [] falsch. Bei der Eingabe einer if-Anweisung werden die Daten jedoch in den Booleschen Typ konvertiert. Im Augenblick: Boolean([]); // wahr Es kann also „true“ ausgeben. Fassen Sie einige Techniken zur Beurteilung doppelter Gleichheitszeichen zusammen:
Boolesche Typkonvertierungvar test = neuer Boolean(); Konsole.log(Test); var test = neuer Boolean(0); Konsole.log(test.valueOf()); var test = neuer Boolean(null); Konsole.log(test.valueOf()); var test = neuer Boolean(""); Konsole.log(test.valueOf()); var test = neuer Boolean(NaN); Konsole.log(test.valueOf()); Die Antwort ist:
Und so funktioniert es:
"+" und "-"konsole.log(1 + "2" + "2"); konsole.log(1 + +"2" + "2"); console.log("A" - "B" + "2"); console.log("A" - "B" + 2); Was ist die Ausgabe? Das Ergebnis ist: 122 32 NaN2 NaN Analyse:
2. Erzwungene TypkonvertierungWelche der folgenden Codes sind für den Code var a = 10,42; zum Extrahieren des ganzzahligen Teils von a korrekt? A. parseInt( a ); B. Math.floor( a ); C. Math.ceil( a ); D. a.split('.')[0]; Antwort: AB Viele Menschen entscheiden sich auf den ersten Blick für ABC. Analyse: A. parseInt konvertiert in eine Ganzzahl, der Standardwert ist Dezimalzahl und das Ergebnis ist 10; B. floor wird abgerundet, das Ergebnis ist 10 – floor bedeutet floor, abgerundet, als Hilfe zum Einprägen; C. ceil wird aufgerundet und das Ergebnis ist 11; D. Der Split-Operand muss ein regulärer Ausdruck oder eine Zeichenfolge sein, andernfalls wird TypeError ausgelöst. neuer String mit ''Welche der folgenden Aussagen sind wahr? A. 'foo' == neue Funktion () { return String('foo'); }; B. 'foo' == neue Funktion() { return neuer String('foo'); }; C. [] == 0 D. ![] E: !0 Antwort: A: Lassen Sie es mich unten im Detail erklären; B: Lassen Sie mich das im Detail erklären. Gemäß unserer Zusammenfassung des doppelten Gleichheitszeichens werden beide Seiten in den Zahlentyp konvertiert, wenn eine Seite des doppelten Gleichheitszeichens ein Boolescher Wert ist. Wenn die Konsole also „leeres Objekt == true“ oder „=== true“ testet, führt sie tatsächlich „leeres Objekt == 1“ oder „=== 1“ aus und gibt daher „false“ zurück. Wenn Sie also überprüfen möchten, ob das Objekt immer „true“ ist, sollten Sie !{} und !!{} !{}; // false; !!{}; // true verwenden. E: Da Boolean(0) == false, !0 = true, was richtig ist. Sprechen wir über Option AB. Aufgrund der Verwendung des Schlüsselworts new und des Aufrufs des Funktionskonstruktors ist das Ergebnis unerwartet. Zunächst müssen wir wissen, dass beim Aufruf eines Konstruktors mit „new“ das von „new“ erstellte anonyme Objekt überschrieben wird, wenn intern ein Referenzobjekt (Array, Objekt, Funktion usw.) zurückgegeben wird. Wenn ein primitiver Typ zurückgegeben wird (wenn keine explizite Rückgabe erfolgt, wird tatsächlich „undefined“ zurückgegeben), wird das von „new“ erstellte anonyme Objekt zurückgegeben. Es scheint, dass Bei Option A gibt der Konstruktor eine Zeichenfolge zurück, sodass der endgültige Konstruktor ein von „new“ erstelltes anonymes Objekt zurückgibt, das ein leeres Objekt ist. Bei Option B wird innerhalb des Konstruktors ein Zeichenfolgenobjekt zurückgegeben, sodass der endgültige Konstruktor dieses Objekt zurückgibt. ZusammenfassenDies ist das Ende dieses Artikels über obligatorische und implizite Typkonvertierungen in JavaScript. Weitere Informationen zu obligatorischen und impliziten Typkonvertierungen in JavaScript finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung zum Anzeigen und Einstellen des SQL-Modus in MySQL
>>: So installieren Sie OpenSSH aus dem Quellcode in CentOS 7
html, address,blockquote,body, dd, div,dl, dt, fie...
MySQL-Group-Replication ist eine neue Funktion, d...
Das Element UI-Tabelle verfügt nicht über eine in...
Beim Verwenden des Flex-Layouts werden Sie festst...
Apache Tika ist eine Bibliothek zur Dateityperken...
Der HTTP-Statuscode ist ein dreistelliger Code, d...
1. Der Linux-Server konfiguriert /etc/hosts.deny ...
Inhaltsverzeichnis 1. Bootstrap-Rasterlayout 2. V...
Wenn Sie CSS verwenden, vergessen Sie nicht, DOCTY...
Nach chinesischem Brauch feiern wir das neue Jahr...
In diesem Artikel wird der spezifische Code der L...
Inhaltsverzeichnis 1. Einleitung 2. Installation ...
Inhaltsverzeichnis Objekt Objektdefinition Iterie...
Nach der Installation eines Centos8-Dienstes unte...
Inhaltsverzeichnis 1. Ursprüngliche Definition 2....