Tipps zum impliziten JavaScript-Typ „conversion_javascript'.
JavaScripts Datentypen sind sehr schwach (sonst würde man es nicht als schwach typisierte Sprache bezeichnen)! Bei der Verwendung arithmetischer Operatoren können die Datentypen auf beiden Seiten des Operators beliebig sein. Beispielsweise kann eine Zeichenfolge zu einer Zahl hinzugefügt werden. Der Grund, warum Operationen zwischen verschiedenen Datentypen ausgeführt werden können, liegt darin, dass die JavaScript-Engine vor der Operation stillschweigend eine implizite Typkonvertierung für sie durchführt. Im Folgenden werden numerische Typen und boolesche Typen hinzugefügt:
3 + wahr; // 4
Das Ergebnis ist ein numerischer Wert! Wenn es sich um eine C- oder Java-Umgebung handelt, führt die obige Operation definitiv zu einem Fehler, da die Datentypen auf beiden Seiten des Operators inkonsistent sind! In JavaScript führt der falsche Typ jedoch nur in wenigen Fällen zu einem Fehler, z. B. beim Aufrufen einer Nichtfunktion oder beim Lesen einer Null- oder undefinierten Eigenschaft wie folgt:
"hello"(1); // Fehler: keine Funktion
null.x; // Fehler: Eigenschaft 'x' von null
kann nicht gelesen werden
In den meisten Fällen macht JavaScript keine Fehler, sondern führt automatisch die entsprechende Typkonvertierung durch. Beispielsweise wandeln arithmetische Operatoren wie -, *, / und % ihre Operanden in Zahlen um, aber das „+“-Zeichen ist etwas anders. In einigen Fällen ist es ein arithmetisches Pluszeichen, in anderen Fällen ist es ein Pluszeichen ist eine Zeichenfolge. Das Verbindungssymbol hängt wie folgt von seinen Operanden ab:
2 + 3; // 5
„Hallo“ + „Welt“; // „Hallo Welt“
Aber was wäre das Ergebnis, wenn Zeichenfolgen und Zahlen hinzugefügt würden? JavaScript wandelt Zahlen wie folgt automatisch in Zeichen um, unabhängig davon, ob die Zahl oder die Zeichenfolge an erster Stelle steht:
„2“ + 3; // „23“
2 + „3“; // „23“
Das Ergebnis der Addition einer Zeichenfolge und einer Zahl ist eine Zeichenfolge. Das Ergebnis der Addition einer Zeichenfolge und einer Zahl ist eine Zeichenfolge. ! ! ! ! !
Außerdem ist zu beachten, dass die Betätigungsrichtung von „+“ wie folgt von links nach rechts verläuft:
1 + 2 + „3“; // „33“
Dies entspricht:
(1 + 2) + „3“; // „33“
Im Gegensatz dazu sind die folgenden Ergebnisse unterschiedlich:
1 + „2“ + 3; // „123“
Die implizite Typkonvertierung verbirgt jedoch manchmal einige Fehler, z. B. wird null in 0 und undefiniert in NaN konvertiert. Es ist zu beachten, dass NaN und NaN nicht gleich sind (dies liegt an der Genauigkeit von Gleitkommazahlen), wie folgt:
var x = NaN;
x === NaN; // false
Obwohl JavaScript isNaN bereitstellt, um zu erkennen, ob ein bestimmter Wert NaN ist, ist dies nicht sehr genau, da vor dem Aufruf der isNaN-Funktion ein impliziter Konvertierungsprozess stattfindet, der die Werte, die ursprünglich nicht NaN sind, in NaN konvertiert , wie folgt:
isNaN("foo"); // true
isNaN(undefiniert); // true
isNaN({}); // true
isNaN({ valueOf: "foo" }); // true
Nachdem wir den obigen Code mit isNaN getestet haben, haben wir festgestellt, dass Strings, undefinierte und sogar Objekte alle „true“ zurückgegeben haben! ! ! Allerdings können wir nicht sagen, dass sie auch NaN sind, oder? Alles in allem lautet das Fazit: isNaN-Erkennung von NaN ist nicht zuverlässig! ! !
Glücklicherweise gibt es eine zuverlässige und genaue Möglichkeit, NaN zu erkennen. Wir alle wissen, dass NaN die einzige Zahl ist, die sich selbst nicht gleicht. Dann können wir das Ungleichheitszeichen (!==) verwenden, um zu bestimmen, ob eine Zahl sich selbst entspricht, sodass NaN wie folgt erkannt werden kann:
var a = NaN; a !== a; // true var b = "foo"; b !== b; // false var c = undefined; c !== c; // false var d = {}; d !== d; // false var e = { valueOf: "foo" }; e !== e; // false
Wir können diesen Modus auch wie folgt als Funktion definieren:
function isReallyNaN(x) { return x !== x; }
OK, so einfach ist die NaN-Erkennungsmethode. Lassen Sie uns weiter über die implizite Konvertierung von Objekten sprechen!
Objekte können wie folgt in primitive Werte umgewandelt werden:
"the Math object: " + Math; // "the Math object: [object Math]" "the JSON object: " + JSON; // "the JSON object: [object JSON]"
Das Objekt wird durch Aufruf seiner toSting-Funktion in einen String umgewandelt. Sie können es manuell aufrufen, um Folgendes zu überprüfen:
Math.toString(); // "[object Math]" JSON.toString(); // "[object JSON]"
In ähnlicher Weise können Objekte auch über die valueOf-Funktion in Zahlen umgewandelt werden. Natürlich können Sie diese valueOf-Funktion auch wie folgt anpassen:
"J" + { toString: function() { return "S"; } }; // "JS" 2 * { valueOf: function() { return 3; } }; // 6
Wenn ein Objekt sowohl über die valueOf-Methode als auch über die toString-Methode verfügt, wird die valueOf-Methode immer zuerst wie folgt aufgerufen:
var obj = { toString: function() { return "[object MyObject]"; }, valueOf: function() { return 17; } }; "object: " + obj; // "object: 17"
In den meisten Fällen ist dies jedoch nicht das, was wir wollen. Versuchen Sie im Allgemeinen, die durch valueOf und toString dargestellten Werte gleich zu machen (obwohl die Typen unterschiedlich sein können).
Die letzte Art der erzwungenen Typkonvertierung wird oft als „Wahrheitsoperation“ bezeichnet, z. B. if, ||, &&. Ihre Operanden sind nicht unbedingt boolesch. JavaScript konvertiert einige nicht-boolesche Werte mithilfe einfacher Konvertierungsregeln in boolesche Werte. Die meisten Werte werden in wahr umgewandelt, nur wenige sind falsch, sie sind: falsch, 0, -0, „“, NaN, null, undefiniert, da es Zahlen, Zeichenfolgen und Objekte mit falschen Werten gibt, also Es Es ist nicht sehr sicher, die Wahrheitswertkonvertierung direkt zu verwenden, um zu bestimmen, ob die Parameter einer Funktion übergeben werden. Beispielsweise gibt es eine Funktion, die optionale Parameter mit Standardwerten haben kann, wie folgt:
function point(x, y) { if (!x) { x = 320; } if (!y) { y = 240; } return { x: x, y: y }; }
Diese Funktion ignoriert alle Parameter, deren wahrer Wert falsch ist, einschließlich 0, -0;
function point(x, y) { if (typeof x === "undefined") { x = 320; } if (typeof y === "undefined") { y = 240; } return { x: x, y: y }; }
point(); // { x: 320, y: 240 } point(0, 0); // { x: 0, y: 0 }
if (x === undefined) { ... }
Zusammenfassung:
1. Typfehler können durch Typkonvertierung ausgeblendet werden.2. „+“ kann je nach Operanden sowohl eine String-Verkettung als auch eine arithmetische Addition darstellen. Wenn einer davon ein String ist, handelt es sich um eine String-Verkettung.
3. Das Objekt wandelt sich über die valueOf-Methode in eine Zahl und über die toString-Methode in einen String um.
4. Objekte mit valueOf-Methoden sollten eine entsprechende toString-Methode definieren, um gleiche Zahlen in String-Form zurückzugeben.
5. Bei der Erkennung einiger undefinierter Variablen sollte typeOf oder ein Vergleich mit undefiniert anstelle der direkten True-Value-Operation verwendet werden.
Das ist es für alle, die sich mit der impliziten Typkonvertierung in JavaScript befassen. Ich hoffe, es wird Ihnen hilfreich sein!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Häufig gestellte Fragen und Lösungen für das Ticket-Ticket-Ticket-Ticket in Front-End im Front-End-Entwicklungsdruck ist der Ticketdruck eine häufige Voraussetzung. Viele Entwickler implementieren jedoch ...

Es gibt kein absolutes Gehalt für Python- und JavaScript -Entwickler, je nach Fähigkeiten und Branchenbedürfnissen. 1. Python kann mehr in Datenwissenschaft und maschinellem Lernen bezahlt werden. 2. JavaScript hat eine große Nachfrage in der Entwicklung von Front-End- und Full-Stack-Entwicklung, und sein Gehalt ist auch beträchtlich. 3. Einflussfaktoren umfassen Erfahrung, geografische Standort, Unternehmensgröße und spezifische Fähigkeiten.

JavaScript ist der Eckpfeiler der modernen Webentwicklung. Zu den Hauptfunktionen gehören eine ereignisorientierte Programmierung, die Erzeugung der dynamischen Inhalte und die asynchrone Programmierung. 1) Ereignisgesteuerte Programmierung ermöglicht es Webseiten, sich dynamisch entsprechend den Benutzeroperationen zu ändern. 2) Die dynamische Inhaltsgenerierung ermöglicht die Anpassung der Seiteninhalte gemäß den Bedingungen. 3) Asynchrone Programmierung stellt sicher, dass die Benutzeroberfläche nicht blockiert ist. JavaScript wird häufig in der Webinteraktion, der einseitigen Anwendung und der serverseitigen Entwicklung verwendet, wodurch die Flexibilität der Benutzererfahrung und die plattformübergreifende Entwicklung erheblich verbessert wird.

Wie fusioniere ich Array -Elemente mit derselben ID in ein Objekt in JavaScript? Bei der Verarbeitung von Daten begegnen wir häufig die Notwendigkeit, dieselbe ID zu haben ...

Diskussion über die Realisierung von Parallaxe -Scrolling- und Elementanimationseffekten in diesem Artikel wird untersuchen, wie die offizielle Website der Shiseeido -Website (https://www.shiseeido.co.jp/sb/wonderland/) ähnlich ist ...

Eingehende Diskussion der Ursachen des Unterschieds in der Konsole.log-Ausgabe. In diesem Artikel wird die Unterschiede in den Ausgabeergebnissen der Konsolenfunktion in einem Code analysiert und die Gründe dafür erläutert. � ...

JavaScript zu lernen ist nicht schwierig, aber es ist schwierig. 1) Verstehen Sie grundlegende Konzepte wie Variablen, Datentypen, Funktionen usw. 2) Beherrschen Sie die asynchrone Programmierung und implementieren Sie sie durch Ereignisschleifen. 3) Verwenden Sie DOM -Operationen und versprechen Sie, asynchrone Anfragen zu bearbeiten. 4) Vermeiden Sie häufige Fehler und verwenden Sie Debugging -Techniken. 5) Die Leistung optimieren und Best Practices befolgen.

JavaScript kann in PowerPoint ausgeführt werden und durch Aufrufen externer JavaScript -Dateien oder der Einbettung von HTML -Dateien über VBA implementiert werden. 1. Um VBA zu verwenden, um JavaScript -Dateien aufzurufen, müssen Sie Makros aktivieren und VBA -Programmierkenntnisse haben. 2. Einbetten Sie HTML -Dateien ein, die JavaScript enthalten, die einfach und einfach zu bedienen sind, aber Sicherheitsbeschränkungen unterliegen. Zu den Vorteilen zählen erweiterte Funktionen und Flexibilität, während Nachteile Sicherheit, Kompatibilität und Komplexität beinhalten. In der Praxis sollte die Aufmerksamkeit auf Sicherheit, Kompatibilität, Leistung und Benutzererfahrung geschenkt werden.
