Heim >Web-Frontend >js-Tutorial >Drei Möglichkeiten, Variablen in Javascript in Zeichenfolgen umzuwandeln

Drei Möglichkeiten, Variablen in Javascript in Zeichenfolgen umzuwandeln

黄舟
黄舟Original
2017-09-22 09:53:492624Durchsuche

In diesem Artikel werden hauptsächlich drei Methoden zum Konvertieren von Variablen in Zeichenfolgen in Javascript vorgestellt: value.toString(), „“ + value und String(value). Detailliert. Freunde, die es brauchen, können dem Herausgeber folgen, um gemeinsam zu lernen.

Vorwort

Jeder sollte wissen, dass es für JavaScript drei verschiedene Möglichkeiten gibt, Variablen in Strings umzuwandeln. In diesem Artikel werden diese Methoden im Detail vorgestellt und ihre Vor- und Nachteile verglichen. Im Folgenden gibt es nicht viel zu sagen. Werfen wir einen Blick auf die ausführliche Einführung.

3 Methoden

Die 3 Methoden zum Konvertieren von Variablen in Zeichenfolgen sind wie folgt:

  • value.toString()

  • "" + value

  • String(value)

Wenn der Wert null oder undefiniert ist, ist die 1. Diese Methode wird nicht funktionieren. Und Methode 2 und Methode 3 sind grundsätzlich gleich.

""+value: Fügen Sie einem leeren String einen Wert hinzu, um ihn in einen String umzuwandeln. Bei dieser Methode handelt es sich eigentlich um eine etwas undurchsichtige Technik, die es für andere möglicherweise schwierig macht, die Absichten des Entwicklers zu verstehen. Dies ist jedoch Ansichtssache und einige Leute bevorzugen diese Methode.

String(value): Diese Methode ist sehr klar: Verwenden Sie die Funktion String(), um den Wert in einen String umzuwandeln. Allerdings hat String() zwei unterschiedliche Verwendungszwecke, was insbesondere für Java-Entwickler leicht zu Verwechslungen führen kann. Wenn String() als Konstruktor mit dem Operator new verwendet wird, gibt er ein neu erstelltes String-Objekt zurück. Wenn String() ohne new-Operator aufgerufen wird, konvertiert es nur den Wert in den ursprünglichen String. Die beiden sind sehr unterschiedlich:


> String("Fundebug") === new String("Fundebug")
false
> typeof String("Fundebug")
'string'
> String("Fundebug") instanceof String
false
> typeof new String("Fundebug")
'object'
> new String("Fundebug") instanceof String
true

Tatsächlich ist die Verwendung von String() als Konstruktor nicht so häufig, daher ist es in Ordnung, ihn einfach zum Konvertieren einer Zeichenfolge zu verwenden.

""+Subtile Unterschiede zwischen Wert und String(Wert)

""+value und String(value) können beide Werte in Zeichenketten umwandeln , wie machen sie das? Obwohl ihre Ergebnisse die gleichen sind, unterscheiden sich ihre Methoden geringfügig.

Primitiv in String konvertieren

Beide Methoden verwenden interne Funktion ToString()Primitiv in String konvertieren. ToString() Funktionen sind in ECMAScript 5.1 (§9.8) definiert, können jedoch nicht direkt verwendet werden und werden daher als interne Funktionen bezeichnet. Die folgende Tabelle zeigt, wie die Funktion ToString() primitive Primitivtypen in Zeichenfolgen konvertiert:

参数 结果
undefined "undefined"
null "null"
Boolean "true"或者 "false"
Number 将数字转换为字符串,例如: "1.765"
String 无需转换

将Object转换为字符串

转换为字符串之前,两种方法都会先将Object转换为primitive。不同的是,""+value使用内部函数ToPrimitive(Number) (除了date类型),而String(value)使用内部函数ToPrimitive(String)

  • ToPrimitive(Number) : 先调用obj.valueOf ,若结果为primitive则返回;否则再调用obj.toString() ,若结果为primitive则返回;否则返回TypeError。

  • ToPrimitive(String) : 与ToPrimitive(Number)类似,只是先调用obj.toString() ,后调用obj.valueOf()

可以通过以下示例了解区别,obj如下:


var obj = {
 valueOf: function()
 {
  console.log("valueOf");
  return {};
 },
 toString: function()
 {
  console.log("toString");
  return {};
 }
};

调用结果:


> "" + obj
valueOf
toString
TypeError: Cannot convert object to primitive value
> String(obj)
toString
valueOf
TypeError: Cannot convert object to primitive value

它们的结果相同

""+valueString(value)虽然不同,但是我们很少能感觉到。因为,大多数object使用默认的valueOf() ,它返回对象本身:


> var x = {}
> x.valueOf() === x
true

由于valueOf()返回值并非primitive,因此ToPrimitive(Number)会跳过valueOf() ,而返回toString()的返回值。这样,与ToPrimitive(String)的返回值就一样了。

当object是Boolean、Number或者String实例时,valueOf()将返回primitive。这就意味着两者的计算过程是这样的:

  • ToPrimitive(Number) valueOf()返回primitive值,然后使用ToString()转换为字符串。

  • ToPrimitive(String) : toString()通过ToString()函数将primitive值转换为字符串。

可知,虽然计算过程不同,但是它们的结果是一样的。

结论

那么你该选择哪种方法呢?如果你可以确保value值不是null和undefined,那么不妨使用value.toString() 。否则,你只能使用""+valueString(value) ,它们基本上是一样的。

总结

Das obige ist der detaillierte Inhalt vonDrei Möglichkeiten, Variablen in Javascript in Zeichenfolgen umzuwandeln. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn