In JavaScript bedeutet schwache Typisierung, dass der Datentyp ignoriert werden kann und einer Variablen Werte verschiedener Datentypen zugewiesen werden können. JavaScript ist eine schwach typisierte Sprache, die eine implizite Konvertierung von Variablentypen, eine erzwungene Typkonvertierung usw. ermöglicht. Beispielsweise können Zeichenfolgen und Werte automatisch konvertiert werden, während stark typisierte Sprachen dies im Allgemeinen nicht zulassen.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.
Stark typisierte Sprache:
Eine Sprache, die Datentypdefinitionen erzwingt. Mit anderen Worten: Sobald einer Variablen ein bestimmter Datentyp zugewiesen wird, bleibt sie immer dieser Datentyp, wenn sie nicht umgewandelt wird. Beispiel: Wenn Sie eine Ganzzahlvariable a definieren, kann das Programm a nicht als Zeichenfolgentyp behandeln. Eine stark typisierte Definitionssprache ist eine typsichere Sprache.
Schwach typisierte Sprache:
Eine Sprache, in der Datentypen ignoriert werden können. Sie ist das Gegenteil einer stark typisierten Definitionssprache, bei der einer Variablen Werte unterschiedlicher Datentypen zugewiesen werden können.
Schwach typisierte Sprachen ermöglichen die implizite Konvertierung von Variablentypen, erzwungene Typkonvertierungen usw. Beispielsweise können Zeichenfolgen und Werte automatisch konvertiert werden, während stark typisierte Sprachen dies im Allgemeinen nicht zulassen.
Die Verkörperung schwacher Typen in js
Die allgemeine Regel lautet: Je stärker die Einschränkung, desto weniger fehleranfällig ist sie, aber desto problematischer ist sie beim Schreiben eines Programms. Da in JavaScript die Einschränkungen relativ schwach sind, kann diese Art von Fehler auftreten: Das einfachste Beispiel:
var a =200; var b ="1"; var c= a + b;
Sie können erwarten, dass c 201 ist, aber tatsächlich ist es „2001“, dieser Fehler wird in a niemals auftreten stark typisierte Sprache Erscheint. Gerade weil JavaScript jedoch nicht über diese Einschränkungen verfügt, kann es problemlos numerische und String-Typen verketten.
Ein weiteres Beispiel ist das Folgende:
var a = '11'; a = a - ''; alert(typeof a);// -->number
"-" kann ein unärer Operator (negativ) oder ein binärer Operator (Subtraktionsoperation) sein.
In einer Schleifenanweisung (if, while) kann ein Objektobjekt implizit konvertiert werden aus booleschen Werten.
var obj = {name:'jack'} if(obj){ //do more }
Schwieriger zu finden ist die Funktion „alert()“.
String.prototype.fn = function(){return this}; var a = 'hello'; alert(typeof a.fn()); //-->object alert(a.fn()); //-->hello
Wir wissen, dass dies als Instanzobjekt der aktuellen Klasse verstanden werden kann. Da es sich um ein Objekt handelt, gibt typeof a.fn() natürlich ein Objekt zurück.
Der Schlüssel ist die letzte Warnung (a.fn()). Was a.fn() zurückgibt, ist offensichtlich ein Objekt, wird aber zur Anzeige implizit in die Zeichenfolge „Hallo“ umgewandelt.
【Verwandte Empfehlungen: Javascript-Lern-Tutorial】
Das obige ist der detaillierte Inhalt vonWas bedeutet der schwache Javascript-Typ?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!