Heim >Web-Frontend >js-Tutorial >Detaillierte Einführung in die neuen Funktionen von JavaScript6

Detaillierte Einführung in die neuen Funktionen von JavaScript6

黄舟
黄舟Original
2017-03-16 14:36:411708Durchsuche

JavaScript Was ist neu in JavaScript 6? Werfen wir einen Blick auf einige der neuen Funktionen von JavaScript 6.

  • let, const (wird verwendet, um blocklokaleVariablen zu definieren), function

  • Dekonstruktion:

    let {x, y} = pt; let [s, v, o] = triple(); (vorausgesetzt, dass
    )let pt = {x:2, y:-5}

  • Standardparameterwert:

    function f(x, y=1, z=0) {⋯}

  • Andere Parameter: function g(i, j, ...r) { <a href="http://www.php.cn/wiki/135.html" target=" _blank">return</a> r.slice(i, j); }function g(i, j, ...r) { <a href="http://www.php.cn/wiki/135.html" target="_blank">return</a> r.slice(i, j); } (
    muss nicht mehr verwendet werden). arguments

  • Datenerweiterung: let a = [0,1,2,3], o = <a href="http://www.php.cn/wiki/%20165.html" target="_blank">new<p> Something(...a);</p></a>. Kann auch für let a = [0,1,2,3], o = <a href="http://www.php.cn/wiki/165.html" target="_blank">new</a> Something(...a);Array-Literale verwendet werden: [1, ...<a href="http://www.php.cn/wiki/1041.html" target="_blank"> array</a>, 4].[1, ...<a href="http://www.php.cn/wiki/1041.html" target="_blank">array</a>, 4]
  • Objekt Abkürzung: let one = 1 { one, func_one(); {return 1;}, ['<a href="http://www.php.cn/wiki/1051.html" target="_blank">key<br> ' + eins]: 1 </a> .let one = 1; { one, func_one() {return 1;}, ['<a href="http://www.php.cn/wiki/1051.html" target="_blank">key</a> ' + one]: 1 }

  • FunktionAbkürzung hat die gleiche Wirkung wie (a) => a * a
    (function(a) { return a * a; }).bind(this)

  • Karte, Satz: .let m = new Map(); m.set(key, value); m.has(key); m.get(key) enthält auch .<a href="http://www.php.cn/wiki/917.html" target=" _blank">clear<br>()</a>, .<a href="http://www.php.cn/wiki/1298.html" target="_blank">delete<code>.<a href="http://www.php.cn/wiki/917.html" target="_blank">clear</a>()( ) code>, .<a href="http://www.php.cn/wiki/127.html" target="_blank">forEach<code>.<a href="http://www.php.cn/wiki/1298.html" target="_blank">delete</a>()(), .<a href="http://www.php.cn/wiki/127.html" target="_blank">forEach</a>()..keys()

  • Schwache Karte:

    . Verwenden Sie es, wenn eine let map = new WeakMap()SchleifeReferenz vorhanden ist. Das Gleiche . new WeakSet()

  • Versprechen:

    .new Promise((resolve, reject) => {…})

    • Wenn

      , gibt promise.then(value => {…}) den versprochenen Wert (oder ein neues Versprechen) zurück , einen Kettenruf bildend) resolve(valueOrPromise)

    • Wenn

      promise.then(…).then(…).catch(error => {…}) ein Versprechen bricht reject(new Error(…))

    • Schnelle Versprechenserstellung:

      , Promise.resolve(value) .Promise.reject(error)

    • Iteration: Versprechen.<a href="http://www.php.cn/wiki/1483.html" target="_blank">alle<p>(listOfPromises).then(listOfValues ​​​​=> …)</p></a>,Promise.<a href="http://www.php.cn/wiki/1483.html" target="_blank">all</a>(listOfPromises).then(listOfValues => …)
      Promise.race(listOfPromises).then(valueThatResolvedFirst => …)
  • Agent: let obj = new Proxy(proto, han<a href="http://www.php.cn/wiki/596.html" target="_blank">dl<p>er)</p></a>.let obj = new Proxy(proto, han<a href="http://www.php.cn/wiki/596.html" target="_blank">dl</a>er)Einfach ausgedrückt:
    Überladung unter Verwendung von Elementen der Klasse Objekt (bringt alle zugänglichen Attribute.)
  • Generator: function* gen() { yield 1; yield 2; } Tatsächlich gibt
    eine Nachricht mit dem Code <a href="http://www.php.cn/wiki/1071.html" target="_blank">next <code>gen()() zurück > Das Objekt der Funktion. <a href="http://www.php.cn/wiki/1071.html" target="_blank">next</a>()

  • Schleife:

    . for (var [key, val] of items(x)) { alert(key + ',' + val); }

  • Wird in der Klassendefinition verwendet<a href="http://www.php.cn/wiki/166.html" target="_blank">extends<p> </p></a>, <a href="http://www.php.cn/code/8202.html" target="_blank">super<code><a href="http://www.php.cn/wiki/166.html" target="_blank">extends</a> und <a href="http://www.php.cn/wiki/188.html" target="_blank">statisches<code><a href="http://www.php.cn/code/8202.html" target="_blank">super</a>:<a href="http://www.php.cn/wiki/188.html" target="_blank">static</a>
    class Point extends Base {
      constructor(x,y) {
        super();
        this[px] = x, this[py] = y;
        this.r = function() { return Math.sqrt(x*x + y*y); }
      }
      get x() { return this[px]; }
      get y() { return this[py]; }
      proto_r() { return Math.sqrt(this[px] * this[px] +
          this[py] * this[py]); }
      equals(p) { return this[px] === p[px] &&
          this[py] === p[py]; }
    }
  • Symbol (Symbol)-Objekt, erstellt einen privaten Schlüssel, der in Karten und Klassen (private Mitglieder

    Mitglieder) verwendet werden kann.

    let a = Map();
    {
      let k = Symbol();
      a.set(k, &#39;value&#39;);
      // 这里你可以访问和设置&#39;value&#39;,比如a.get(k)。
    }
    //这里不行,k是不可见的。
  • Modular:

    module math {
      export function sum(x, y) {
        return x + y;
      }
      export var pi = 3.141593;
    }
    
    import {sum, pi} from math;
    alert(sum(pi,pi));
  • Templated

    String: Kann mehrere sein Linien und kann Variablen einbetten.
    .`You are ${age} years old.`

    // 多行字符串
    re`line1: (words )*
    line2: \w+`
    
    // It desugars to:
    re({raw:&#39;line1: (words )*\nline2: \w+&#39;,
        cooked:&#39;line1: (words )*\nline2: \w+&#39;})
  • Typisiertes Array

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die neuen Funktionen von JavaScript6. 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