Heim >Web-Frontend >js-Tutorial >Vorbereitung auf ECMascript 6: Neue String -Methoden - String.Prototype.*
In meinem vorherigen Artikel über ES6 -Array -Methoden habe ich die neuen Methoden in ECMascript 6 eingeführt, die mit dem Array -Typ arbeiten. In diesem Tutorial lernen Sie neue ES6 -Methoden kennen, die mit Strings funktionieren: String.Prototype.*
Wir werden mehrere Beispiele entwickeln und die für sie verfügbaren Polyfills erwähnen. Denken Sie daran, dass Sie ES6-Shim von Paul Miller verwenden können, wenn Sie sie alle mit einer einzigen Bibliothek ausfehlen möchten.
Eine der am häufigsten verwendeten Funktionen in jeder modernen Programmiersprache ist diejenige, die überprüfen kann, ob eine Zeichenfolge mit einem bestimmten Substring beginnt. Vor ES6 hatte JavaScript keine solche Funktion, was bedeutet, dass Sie es selbst schreiben mussten. Der folgende Code zeigt, wie Entwickler es normalerweise mit der Polyfüllung veranstalteten:
<span>if (typeof String.prototype.startsWith !== 'function') { </span> <span>String.prototype.startsWith = function (str){ </span> <span>return this.indexOf(str) === 0; </span> <span>}; </span><span>} </span>
oder alternativ:
<span>if (typeof String.prototype.startsWith !== 'function') { </span> <span>String.prototype.startsWith = function (str){ </span> <span>return this.substring(0, str.length) === str; </span> <span>}; </span><span>} </span>
Diese Snippets sind immer noch gültig, reproduzieren jedoch nicht genau, was die neu verfügbare String.Prototype.StartSwith () -Methode tut. Die neue Methode hat die folgende Syntax:
<span>String.prototype.startsWith(searchString[, position]); </span>
Sie können sehen, dass es zusätzlich zu einem Substring ein zweites Argument akzeptiert. Der SearchString -Parameter gibt an, dass das Substring, das Sie überprüfen möchten, der Beginn der Zeichenfolge ist. Die Position gibt die Position an, an der die Suche gestartet wird. Der Standardwert der Position beträgt 0. Die Methoden geben true zurück, wenn die Zeichenfolge mit dem bereitgestellten Substring und ansonsten falsch beginnt. Denken Sie daran, dass die Methode von Fall empfindlich ist, also „Hallo“ von „Hallo“.
Eine Beispiel Verwendung dieser Methode ist unten dargestellt:
<span>if (typeof String.prototype.startsWith !== 'function') { </span> <span>String.prototype.startsWith = function (str){ </span> <span>return this.indexOf(str) === 0; </span> <span>}; </span><span>} </span>
Eine Live -Demo des vorherigen Code ist unten angezeigt und auch bei JSBIN verfügbar.
Die Methode wird mit Ausnahme des Internet Explorer im Knoten und allen modernen Browsern unterstützt. Wenn Sie ältere Browser unterstützen müssen, finden Sie eine Polyfill für diese Methode auf der Seite der Methode auf MDN. Eine weitere Polyfill wurde ebenfalls von Mathias Bynens entwickelt.
Zusätzlich zu String.Prototype.StartSwith () führt ECMAScript 6 die methode string.prototype.endswith () ein. Es überprüft, dass eine Zeichenfolge mit einem bestimmten Substring endet. Die unten gezeigte Syntax dieser Methode ist sehr ähnlich zu String.Prototyp.Startswith ():
<span>if (typeof String.prototype.startsWith !== 'function') { </span> <span>String.prototype.startsWith = function (str){ </span> <span>return this.substring(0, str.length) === str; </span> <span>}; </span><span>} </span>
Wie Sie sehen können, akzeptiert diese Methode dieselben Parameter wie string.prototype.startswith () und gibt auch den gleichen Werteyp zurück.
Ein Unterschied besteht darin, dass mit dem Parameter der Position Sie innerhalb der Zeichenfolge suchen können, als ob die Zeichenfolge nur so lang wäre. Mit anderen Worten, wenn wir das String House haben und die Methode mit 'House' nennen. .
Eine Beispiel Verwendung dieser Methode ist unten dargestellt:
<span>String.prototype.startsWith(searchString[, position]); </span>
Eine lebende Demo des vorherigen Snippets ist unten gezeigt und ist auch bei JSBIN erhältlich.
Die Methode wird mit Ausnahme des Internet Explorer im Knoten und allen modernen Browsern unterstützt. Wenn Sie ältere Browser unterstützen müssen, finden Sie eine Polyfill für diese Methode auf der Seite der Methode auf MDN. Eine weitere Polyfill wurde von Mathias Bynens entwickelt.
Während wir über die Überprüfung sprechen, ob eine Zeichenfolge in einer anderen enthalten ist, lassen Sie mich Ihnen die Methode String.Prototype.includes () vorstellen. Es gibt wahr zurück, wenn eine Zeichenfolge in einem anderen enthalten ist, egal wo, und sonst falsch.
seine Syntax ist unten gezeigt:
<span>const str = 'hello!'; </span><span>let result = str.startsWith('he'); </span> <span>// prints "true" </span><span>console.log(result); </span> <span>// verify starting from the third character </span>result <span>= str.startsWith('ll', 2); </span> <span>// prints "true" </span><span>console.log(result); </span>
Die Bedeutung der Parameter ist die gleiche wie für String.Prototype.Startswith (), daher werde ich sie nicht wiederholen. Eine Beispiel Verwendung dieser Methode ist unten dargestellt:
<span>String.prototype.endsWith(searchString[, position]); </span>
Sie finden unten eine Live -Demo und auch wie bei JSBIN.
string.prototype.includes () wird im Knoten und allen modernen Browsern mit Ausnahme von Internet Explorer unterstützt. Wenn Sie ältere Browser unterstützen müssen, wie bei den anderen in diesem Tutorial diskutierten Methoden, finden Sie eine Polyfill, die von Mathias Bynens (dieser Typ weiß, wie man seinen Job macht!) Und ein weiteres im Mozilla -Entwicklernetzwerk.
Hinweis: Bis Version 48 verwendet Firefox den nicht standardmäßigen Namen enthält.
Gehen wir nun zu einer anderen Art von Methode. String.Prototype.Repeat () ist eine Methode, die eine neue Zeichenfolge zurückgibt, die dieselbe Zeichenfolge enthält, die er aufgerufen wurde, aber eine bestimmte Anzahl von Male wiederholt hat. Die Syntax dieser Methode lautet wie folgt:
<span>if (typeof String.prototype.startsWith !== 'function') { </span> <span>String.prototype.startsWith = function (str){ </span> <span>return this.indexOf(str) === 0; </span> <span>}; </span><span>} </span>
Der Parameter der Zeiten gibt an, wie oft die Zeichenfolge wiederholt werden muss. Wenn Sie Null übergeben, erhalten Sie eine leere Zeichenfolge. Wenn Sie eine negative Zahl oder Unendlichkeit übergeben
Eine Beispiel Verwendung dieser Methode ist unten dargestellt:
<span>if (typeof String.prototype.startsWith !== 'function') { </span> <span>String.prototype.startsWith = function (str){ </span> <span>return this.substring(0, str.length) === str; </span> <span>}; </span><span>} </span>Eine Live -Demo des vorherigen Code ist unten angezeigt und ist auch bei JSBIN erhältlich.
Die Methode wird mit Ausnahme des Internet Explorer im Knoten und allen modernen Browsern unterstützt. Wenn Sie ältere Browser unterstützen müssen, stehen für diese Methode zwei Polyfills zur Verfügung: die von Mathias Bynens entwickelte und andere im Mozilla Developer -Netzwerk.
string.raw ()
eine Tag -Funktion von Vorlagenzeichenfolgen definiert. Es ist interessant, denn es ist ein Ersatz für Vorlagenbibliotheken, obwohl ich nicht zu 100% sicher bin, dass es genug skalieren kann, um diese Bibliotheken tatsächlich zu ersetzen. Die Idee ist jedoch im Grunde genommen die gleiche, wie wir in Kürze sehen werden. Es ist, eine Zeichenfolge zu kompilieren und jeden Platzhalter durch einen bereitgestellten Wert zu ersetzen.
<span>String.prototype.startsWith(searchString[, position]); </span>Der Parameter templatestring repräsentiert die Zeichenfolge, die die zu verarbeitende Vorlage enthält.
Um dieses Konzept besser zu verstehen, sehen wir uns ein konkretes Beispiel an:
<span>const str = 'hello!'; </span><span>let result = str.startsWith('he'); </span> <span>// prints "true" </span><span>console.log(result); </span> <span>// verify starting from the third character </span>result <span>= str.startsWith('ll', 2); </span> <span>// prints "true" </span><span>console.log(result); </span>Eine Live -Demo des vorherigen Code ist unten angezeigt und ist auch bei JSBIN erhältlich.
Die Methode wird mit Ausnahme von Opera und Internet Explorer im Knoten und allen modernen Browsern unterstützt. Wenn Sie ältere Browser unterstützen müssen, können Sie eine Polyfill verwenden, wie diese auf NPM verfügbar.
Schlussfolgerung
häufig gestellte Fragen zu ES6 -String -Methoden
Wie funktioniert die Include () -Methode in ES6? In einer anderen Zeichenfolge gefunden. Es gibt true zurück, wenn die Zeichenfolge die angegebene Zeichenfolge und ansonsten falsch enthält. Die Syntax ist Str.includes (SearchString [, Position]). Der Suchstring ist der String, nach dem Sie suchen müssen. Die optionale Position ist die Position innerhalb der Zeichenfolge, an der Sie mit der Suche beginnen müssen. Wenn ausgelassen wird, beginnt die Suche am Anfang der Zeichenfolge. Die angegebene Anzahl der Kopien der Zeichenfolge, auf der sie genannt wurde, verkettete sich zusammen. Die Syntax ist Str. Repeat (Count), wobei die Anzahl der Häufigkeit der Zeichenfolge ist, um die Zeichenfolge zu wiederholen. Die Anzahl muss zwischen 0 und weniger als unendlich liegen und keine negative Zahl sein. Mit ihnen können Sie Multi-Line-Zeichenfolgen und String-Interpolationsfunktionen verwenden. Sie sind durch den Backtick () -Scharakter anstelle von doppelten oder einzelnen Zitaten eingeschlossen. Vorlagenliterale können Platzhalter enthalten, die durch das Dollar -Zeichen und die lockigen Klammern angegeben sind ($ {Ausdruck}). Die Ausdrücke in den Platzhaltern und der Text zwischen ihnen werden an eine Funktion übergeben. ) Methoden werden verwendet, um zu überprüfen, ob eine Zeichenfolge eine angegebene Zeichenfolge enthält. Es gibt jedoch einen wesentlichen Unterschied zwischen ihnen. Die include () -Methode gibt einen booleschen Wert zurück - true, wenn die Zeichenfolge die angegebene Zeichenfolge und ansonsten falsch enthält. Andererseits gibt die Indexof () -Methode den Index des ersten Auftretens der angegebenen Zeichenfolge zurück oder -1, wenn die Zeichenfolge nicht gefunden wird.
Die meisten modernen Browser unterstützen ES6 -String -Methoden. Für ältere Browser, die ES6 nicht unterstützen, müssen Sie jedoch einen Transpiler wie Babel verwenden, um den ES6 -Code in ES5 umzuwandeln, was häufiger unterstützt wird.
Das obige ist der detaillierte Inhalt vonVorbereitung auf ECMascript 6: Neue String -Methoden - String.Prototype.*. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!