Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung erweiterter Beispiele verschiedener Datentypen in es6

Detaillierte Erläuterung erweiterter Beispiele verschiedener Datentypen in es6

零下一度
零下一度Original
2017-06-26 10:24:421789Durchsuche

1. Erweiterung der Zeichenfolge

  1. fügt der Zeichenfolge einen Iterator hinzu, der von for...of

  2. includes durchlaufen werden kann , StartsWith und EndsWith geben beide boolesche Werte zurück und unterstützen den zweiten Parameter (die Startposition der Suche) EndsWith zielt auf die ersten n Zeichen ab, und die anderen beiden sind vom n-ten bis zum Ende

  3. repeat gibt eine neue Zeichenfolge zurück und der Parameter ist die Anzahl der Wiederholungen (Dezimalzahlen werden abgerundet, negative Zahlen oder Infnity melden einen Fehler, 0 bis -1 entspricht 0 und die Zeichenfolge wird in konvertiert Zahlen)

  4. padStart und padEnd werden am Kopf oder Ende vervollständigt. Der erste Parameter ist die Mindestlänge der Zeichenfolge und der zweite Parameter ist die zur Vervollständigung verwendete Zeichenfolge

  5. Vorlagenzeichenfolge `${...}`

2. Numerische Erweiterung

  1. Number.isFinite prüft, ob ein Wert endlich ist. Gibt bei nicht numerischen Werten immer false zurück.

  2. Number.isNaN prüft, ob ein Wert NaN ist.

    Die traditionelle Methode isFinite isNaN ruft zuerst Number() auf, um den nicht numerischen Wert in einen numerischen Wert umzuwandeln

  3. Number.parseInt(), Number.parseFloat() sind die gleichen wie die herkömmliche Methode, die Der Zweck besteht darin, die globale Methoden- und Sprachmodularität zu reduzieren

  4. Number.isInteger() bestimmt, ob es eine ganze Zahl ist

  5. Number.EPSILON ist eine Sehr kleine Konstante. Wenn der Fehler der Gleitkommaberechnung kleiner als dieser Wert ist, ist er in Ordnung

  6. Der genaue ganzzahlige Bereich von JS: -2^53~2^53 (beides ausgenommen). endet),

    Number.MAX_SAFE_INTEGER = Math.pow(2, 53) - 1;
    Number.MIN_SAFE_INTEGER = -Number.MAX_SAFE_INTEGER;
    Number.isSafeInteger() wird verwendet, um zu bestimmen, ob eine ganze Zahl innerhalb fällt dieser Bereich;

  7. Math.trunc() entfernt den Dezimalteil und gibt einen ganzzahligen Teil zurück;

    Math.sign() bestimmt, ob eine ganze Zahl negativ oder 0 ist; Math.cbrt() berechnet die Kubikwurzel einer Zahl; es gibt auch einige logarithmische Methoden und trigonometrische Funktionsmethoden 2 * * 3 === 8, die sich von der Math.pow-Implementierung unterscheiden. die letzte Ziffer des Operationsergebnisses ist unterschiedlich;


    3. Erweiterung des Arrays

Array.from kann Array-ähnliche Objekte konvertieren und durchqueren Objekte in Arrays, und der Spread-Operator kann auch bestimmte Objekte in Arrays konvertieren.
    kann einen zweiten Parameter akzeptieren, der den verarbeiteten Wert in ein Array zurückgibt >Array.of konvertiert eine Reihe von Werten in ein Array;

  1. copyWithin kopiert das Mitglied an der angegebenen Position an andere Orte; start = 0, end = this.length)
  2. find findet das erste qualifizierte Mitglied, der Parameter ist eine Callback-Funktion
  3. findIndex gibt die Position des ersten geeigneten Array-Mitglieds zurück

  4. fill füllt das Array mit dem angegebenen Wert, und der zweite und dritte Parameter können die Start- und Endpositionen angeben

  5. Schlüssel, Werte, Einträge

  6. includes, indexOf ist nicht semantisch genug und wird intern zur Beurteilung verwendet,

    [NaN] .indexOf(NaN) // -1 , [NaN].includes( NaN) // true
  7. Die has von Map wird verwendet, um den Schlüsselnamen zu finden, und die has von Set werden verwendet, um den Wert zu finden
  8. Die leere Position des Arrays has kein Wert, 0 in [,,] // false, es6 konvertiert die leere Position in undefiniert und die leere Position sollte vermieden werden


  9. vier . Die Erweiterung der Funktion

  10. ermöglicht das Festlegen eines Standardwerts für die Funktion. Wenn ein Nicht-Endparameter auf einen Standardwert eingestellt ist, kann dieser Parameter tatsächlich nicht weggelassen werden Das

    -Attribut der Funktion gibt die Anzahl der Parameter ohne angegebenen Standardwert zurück.
  11. Wenn der Parameter mit einem festgelegten Standardwert nicht der letzte Parameter ist, wird das
-Attribut im Folgenden nicht mehr gezählt Parameter;

  1. Sobald der Standardwert des Parameters festgelegt ist, bildet der Parameter einen separaten Bereich (Kontext), wenn die Funktion deklariert und initialisiert wird. Wenn die Initialisierung abgeschlossen ist, verschwindet dieser Bereich. Dieses Syntaxverhalten tritt nicht auf, wenn der Parameter-Standardwert nicht festgelegt ist.


    length
    Rest-Parameter (... Variablenname) length

  2. Expand-Operator (...), konvertiert ein Array in eine durch Kommas getrennte Parametersequenz .

  3. Hinweis zur Verwendung von Pfeilfunktionen:


    (1) Das

    -Objekt im Funktionskörper ist wo Es ist ein definiertes Objekt und nicht das Objekt, in dem es verwendet wird.
    /* 替代数组的apply方法 */// ES5的写法function f(x, y, z) {  // ...}var args = [0, 1, 2];
    f.apply(null, args);// ES6的写法function f(x, y, z) {  // ...}var args = [0, 1, 2];
    f(...args);/* --------------------------------- */// ES5的写法Math.max.apply(null, [14, 3, 77])// ES6的写法Math.max(...[14, 3, 77])// 等同于Math.max(14, 3, 77);/* --------------------------------- */// ES5的写法var arr1 = [0, 1, 2];var arr2 = [3, 4, 5];
    Array.prototype.push.apply(arr1, arr2);// ES6的写法var arr1 = [0, 1, 2];var arr2 = [3, 4, 5];
    arr1.push(...arr2);
    (2) kann nicht als Konstruktor verwendet werden, das heißt, der Befehl
    kann nicht verwendet werden, da sonst ein Fehler ausgegeben wird.
  4. (3) Das

    -Objekt kann nicht verwendet werden, da das Objekt nicht im Funktionskörper vorhanden ist. Wenn Sie es verwenden möchten, können Sie stattdessen den Rest-Parameter verwenden.

    (4) Der Befehl this kann nicht verwendet werden, daher kann die Pfeilfunktion nicht als Generatorfunktion verwendet werden.

    new

    arguments5. Objekterweiterungen

    yield

    Attributabkürzungsnotation

Attribut Namensausdruck, [Variablenname]

  1. Das

    -Attribut der Methode gibt den Funktionsnamen (d. h. Methodennamen) zurück

  2. Objekt. is ist im Grunde dasselbe wie ===. Der Unterschied besteht darin, dass zum einen

    nicht gleich
  3. ist und zum anderen, dass
  4. sich selbst entspricht

    name

  5. Object.assign(target, o1, o2) wird zum Zusammenführen von Objekten mit demselben Namen verwendet, die zuvor implementierten flachen Kopien können nicht überschrieben werden werden aufgrund von undefiniert und null in Objekte konvertiert. Wenn sie also als Parameter verwendet werden, wird ein Fehler gemeldet.

  6. Die Object.getOwnPropertyDescriptor-Methode kann das Beschreibungsobjekt dieser Eigenschaft abrufen.

  7. Traversal von Eigenschaften:

    for...in, Object.keys, Object.getOwnPropertyNames(obj), Object.getOwnPropertySymbols(obj), Reflect.ownKeys(obj)

  8. __proto__ hat die gleiche Funktion wie Object.setPrototypeOf() und dient zum Festlegen des Prototypobjekts eines Objekts, Object.getPrototypeOf()

  9. Object.keys(), Object.values(), Object.entries()

  10. Object.getOwnPropertyDescriptors gibt das Beschreibungsobjekt aller seiner eigenen Eigenschaften (nicht geerbten Eigenschaften) des angegebenen zurück Objekt;

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung erweiterter Beispiele verschiedener Datentypen in es6. 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