


Eine kurze Einführung in die implizite Typkonvertierung von JavaScript-Datentypen_Javascript-Fähigkeiten
JavaScript-Datentypen sind in sechs Typen unterteilt, nämlich null, undefiniert, boolesch, Zeichenfolge, Zahl und Objekt. Objekt ist ein Referenztyp und die anderen fünf sind Basistypen oder primitive Typen. Mit der Methode typeof können wir ausdrucken, zu welchem Typ etwas gehört. Um Variablen unterschiedlichen Typs zu vergleichen, müssen Sie zunächst den Typ konvertieren. Dies wird als Typkonvertierung oder implizite Konvertierung bezeichnet. Implizite Konvertierungen erfolgen üblicherweise mit den Operatoren Addition, Subtraktion, Multiplikation, Division, Gleichheit, Kleiner als, Größer als usw. .
typeof '11' //string typeof(11) //number '11' < 4 //false
In diesem Kapitel wird die implizite Datentypkonvertierung in JavaScript separat vorgestellt. Ein gutes Verständnis davon kann viele Vorgänge in praktischen Anwendungen vereinfachen.
Siehe das folgende Codebeispiel:
var arr = [5]; console.log(arr+"");
Der obige Code ist eine Operation zum impliziten Konvertieren eines Arrays in einen String. Ist das nicht viel einfacher als die folgende Methode:
var arr = [5]; console.log(arr.toString());
Implizite Datentypkonvertierungen wie die oben genannten werden häufig in der tatsächlichen Codierung verwendet.
1. Datentypkonvertierung zwischen Werttypen:
Informationen zu Datentypen in JavaScript finden Sie im Kapitel „Detaillierte Erläuterung der JavaScript-Datentypen“.
(1) Zahlen und Zeichenfolgen verwenden Operatoren:
Wenn Sie den Operator verwenden, um Zahlen und Zeichenfolgen zu bearbeiten, werden die Zahlen zuerst in Zeichenfolgen umgewandelt und dann werden Zeichenfolgenverkettungsoperationen ausgeführt:
var antzone = "antzone"; var num = 8; console.log(antzone+num);
(2). Operatoroperationen mit booleschen Werten:
Wenn es sich um einen booleschen Typ handelt, wird der boolesche Wert zunächst in die entsprechende Zahl oder Zeichenfolge umgewandelt und anschließend die entsprechende Zeichenfolgenverbindung oder arithmetische Operation ausgeführt.
var bool = true; var num = 8; console.log(bool + num);
Der obige Code wandelt zuerst true in die Zahl 1 um und führt dann eine arithmetische Addition durch.
var bool = true; var num = "8"; console.log(bool + num);
Der obige boolesche Wert wird in die entsprechende Zeichenfolgenform „true“ konvertiert und anschließend wird eine Zeichenfolgenverkettung durchgeführt.
(3). Subtraktionsoperation:
Wenn eine Subtraktionsoperation ausgeführt wird, werden zuerst beide Operanden in Zahlen umgewandelt und dann wird die arithmetische Operation ausgeführt:
var bool = true; var num = "8"; console.log(bool - num);
true wird in die Zahl 1 umgewandelt, die Zeichenfolge „8“ wird in die Zahl 8 umgewandelt und dann werden arithmetische Operationen ausgeführt.
Das Gleiche gilt für die Umrechnungen von Multiplikation, Division, Größer als, Kleiner als und Subtraktion, daher werde ich keine Beispiele mehr nennen.
(4).==Gleichheitsoperation:
undefiniert und null sind etwas Besonderes. Sie verwenden beide den ==-Operator, um true zurückzugeben.
console.log(undefined==null);
Beim Vergleich mit anderen Werttypen werden die Operanden in Zahlen umgewandelt
console.log("3"==3);
Der obige Code wandelt die Zeichenfolge „3“ in eine Zahl um und vergleicht sie dann.
console.log("1"==true);
Der obige Code wandelt „1“ und „true“ jeweils in Zahlen um und vergleicht sie dann.
2. Referenztyp in Werttyp konvertieren:
Das Konvertieren von Referenztypen (Objekten) in Werttypen ist viel komplizierter. Die Verteilung wird unten vorgestellt.
Die beiden Methoden der Objektvererbung können uns helfen, die Konvertierungsfunktion vom Objekt- in den Werttyp zu realisieren:
(1).toString() Methode.
(2).valueOf() Methode.
Normalerweise gehen wir davon aus, dass Sie zum Konvertieren eines Objekts in eine Zeichenfolge die Methode toString() aufrufen müssen und zum Konvertieren eines Objekts in eine Zahl die Methode valueOf() aufrufen müssen, aber das ist nicht der Fall einfach, wenn es tatsächlich angewendet wird. Siehe das folgende Codebeispiel:
var obj = { webName: "脚本之家", url:"softwhy.com" } console.log(obj.toString());
Wie aus dem obigen Code ersichtlich ist, konvertiert die toString()-Methode das Objekt nicht in einen String, der dieses Objekt widerspiegelt.
var arr = [1, 2, 3]; console.log(arr.valueOf());
Wie aus dem obigen Code ersichtlich ist, wandelt die Methode valueOf() das Objekt nicht in eine Zahl um, die dieses Objekt widerspiegelt.
var arr = [1, 2, 3]; console.log(arr.toString());
数组对象的toString()方法能够将数组转换为能够反映此数组对象的字符串。
总结如下:
(1).有些对象只是简单继承了toString()或者valueOf()方法,比如第一个例子。
(2).有些对象则不但是继承了两个方法,而且还进行了重写。
所以有些对象的方法能够达成转换成字符串或者数字的目标,有些则不能。
调用toString()或者valueOf()将对象转换成字符串或者数字的规则如下:
调用toString()时,如果对象具有这个方法,则调用此方法;如果此方法返回一个值类型数据,那么就返回这个值类型数据,然后再根据所处的上下文环境进行相关数据类型转换。如果没有toString(),或者此方法返回值并不是一个值类型数据,那么就会调用valueOf()(如果此方法存在的话),如果valueOf()返回一个值类型数据,那么再根据所处的上下文环境进行相关的数据类型转换。
进一步说明:
(1).上面介绍了通常默认情况下valueOf()和toString()方法的作用(将对象转换为数字或者字符串),但是需要注意的是,这并不是硬性规定,也就是说并不是valueOf()方法必须要返回数字或者toString()方法必须要转换为字符串,比如简单继承的这两个方法就无法进行实现转换为数字和字符串的功能,再比如,我们可以自己称谢这两个方法,返回值也没有必要是数字或者字符串。
(2).还有需要特别注意的一点就是,很多朋友认为,转换为字符串首先要调用toString()方法, 其实这是错误的认识,我们应该这么理解,调用toString()方法可以转换为字符串,但不一定转换字符串就是首先调用toString()方法。
看如下代码实例:
var arr = []; arr.valueOf = function () { return "1"; } arr.toString = function () { return "2"; } console.log(arr + "1");
上面的代码中,arr是要被转换为字符串的,但是很明显是调用的valueOf()方法,而没有调用toString()方法。有些朋友可能会有这样的质疑,难道[2]这样的数字转换成字符串"2",不是调用的toString()方法吗。
代码如下:
var arr = [2]; console.log(arr + "1");
其实过程是这样的,首先arr会首先调用valueOf()方法,但是数字的此方法是简单继承而来,并没有重写(当然这个重写不是我们实现),返回值是数组对象本身,并不是一个值类型,所以就转而调用toString()方法,于是就实现了转换为字符串的目的。
总结如下:
大多数对象隐式转换为值类型都是首先尝试调用valueOf()方法。但是Date对象是个例外,此对象的valueOf()和toString()方法都经过精心重写,默认是调用toString()方法,比如使用+运算符,如果在其他算数运算环境中,则会转而调用valueOf()方法。
代码实例如下:
var date = new Date(); console.log(date + "1"); console.log(date + 1); console.log(date - 1); console.log(date * 1);
以上内容是小编给大家介绍的JavaScript数据类型之隐式类型转换的全部内容,希望大家喜欢。

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

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

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

Zu den impliziten Typkonvertierungen, die es in MySQL gibt, gehören Zeichenfolgen in numerische Typen, Datums- und Uhrzeittypen, Gleitkomma- und Ganzzahltypen, NULL-Werte usw. Detaillierte Einführung: 1. Implizite Typkonvertierung von einem String in einen numerischen Typ. Wenn ein String mit einem numerischen Typ verglichen oder berechnet wird, konvertiert MySQL den String in einen numerischen Typ Konvertierung: In MySQL können Datums- und Uhrzeittypen auch eine implizite Typkonvertierung mit anderen Datentypen durchführen. 3. Implizite Typkonvertierung von Gleitkomma- und Ganzzahltypen usw.

Das Konvertieren eines Datentyps in einen anderen wird als Typkonvertierung bezeichnet. Implizite Typkonvertierung Explizite Typkonvertierung Implizite Typkonvertierung Der Compiler bietet eine implizite Typkonvertierung, wenn die Operanden unterschiedliche Datentypen haben. Dies geschieht automatisch durch den Compiler, indem er kleinere Datentypen in größere Datentypen konvertiert. inti,x;floatf;doubled;longintl;Hier ergibt der obige Ausdruck schließlich einen „double“-Wert. Beispiel Das Folgende ist ein Beispiel für die implizite Typkonvertierung-intx;for(x=97;x<=122;x++){ printf("%c",x);/*Im

Zu den Vorteilen von Standardparametern in C++-Funktionen gehören die Vereinfachung von Aufrufen, die Verbesserung der Lesbarkeit und die Vermeidung von Fehlern. Die Nachteile sind eingeschränkte Flexibilität und Namensbeschränkungen. Zu den Vorteilen variadischer Parameter gehören unbegrenzte Flexibilität und dynamische Bindung. Zu den Nachteilen gehören eine größere Komplexität, implizite Typkonvertierungen und Schwierigkeiten beim Debuggen.

Durch die Typkonvertierung innerhalb der Funktion können Daten eines Typs in einen anderen Typ konvertiert werden, wodurch die Funktionalität der Funktion erweitert wird. Verwenden Sie die Syntax: Typname:=Variable.(Typ). Sie können beispielsweise die Funktion strconv.Atoi verwenden, um eine Zeichenfolge in eine Zahl umzuwandeln und Fehler zu behandeln, wenn die Konvertierung fehlschlägt.

Entdecken Sie die verschiedenen Arten impliziter Typkonvertierungen und ihre Rolle bei der Programmierung. Einführung: Bei der Programmierung müssen wir häufig mit verschiedenen Datentypen umgehen. Manchmal müssen wir einen Datentyp in einen anderen Typ konvertieren, um eine bestimmte Operation auszuführen oder bestimmte Anforderungen zu erfüllen. In diesem Prozess ist die implizite Typkonvertierung ein sehr wichtiges Konzept. Unter impliziter Typkonvertierung versteht man den Prozess, bei dem die Programmiersprache automatisch eine Datentypkonvertierung durchführt, ohne den Konvertierungstyp explizit anzugeben. In diesem Artikel werden die verschiedenen Arten impliziter Typkonvertierungen und ihre Rolle bei der Programmierung untersucht.

Häufige Situationen: 1. Verwenden Sie Funktionen oder Operationen; 3. Verwenden Sie ungleich (!= oder <>); Wert; 7. Niedrige Indexselektivität; 8. Prinzip des zusammengesetzten Indexes; 9. Optimierer-Entscheidung;

Die Go-Sprache verwendet statische Typisierung und führt zur Kompilierungszeit eine Typprüfung durch, um Laufzeittypfehler zu vermeiden. Zu den Grundtypen gehören Ganzzahlen, Gleitkommazahlen, boolesche Werte, Zeichenfolgen und Byte-Slices. Zu den zusammengesetzten Typen gehören Arrays, Slices, Strukturen, Schnittstellen und Kanäle. Die Go-Sprache unterstützt Typinferenz und verschiedene Typkonvertierungsoperatoren. Typaliase erleichtern die Lesbarkeit und Wartbarkeit des Codes. Statische Typisierung bringt Vorteile in Bezug auf Sicherheit, Leistung und Wartbarkeit.

Der Unterschied zwischen int- und float-Variablen in der C-Sprache besteht darin, dass sie unterschiedliche Typen haben: int wird zum Speichern von Ganzzahlen verwendet, während float zum Speichern von Dezimalzahlen verwendet wird. Speichergröße: Int benötigt normalerweise 4 Byte und Float benötigt ebenfalls 4 Byte. Präzision: int stellt eine exakte Ganzzahl dar, während float eine begrenzte Genauigkeit hat. Bereich: int liegt normalerweise im Bereich von -2^31 bis 2^31-1, während float einen größeren Bereich hat. Arithmetische Operationen: int und float können arithmetische Operationen und Vergleiche durchführen, die Ergebnisse können jedoch durch Genauigkeitseinschränkungen beeinträchtigt werden. Typkonvertierung: Zwischen int und float kann eine explizite oder implizite Typkonvertierung durchgeführt werden.
