<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      ES6

      1.塊級作用域 關鍵字let, 常量const

      let 關鍵詞聲明的變量不具備變量提升(hoisting)特性
      let 和 const 聲明只在最靠近的一個塊中(花括號內)有效
      當使用常量 const 聲明時,請使用大寫變量,如:CAPITAL_CASING
      const 在聲明時必須被賦值

      2.對象字面量的屬性賦值簡寫(property value shorthand)

      var obj = {
          // __proto__
          __proto__: theProtoObj,
          // Shorthand for ‘handler: handler’
          handler,
          // Method definitions
          toString() {
          // Super calls
          return "d " + super.toString();
          },
          // Computed (dynamic) property names
          [ 'prop_' + (() => 42)() ]: 42
      };
      □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□【暫時不懂】

      3.解構賦值

      let singer = { first: "Bob", last: "Dylan" };
      let { first: f, last: l } = singer; // 相當于 f = "Bob", l = "Dylan"
      let [all, year, month, day] =  /^(\d\d\d\d)-(\d\d)-(\d\d)$/.exec("2015-10-25");
      let [x, y] = [1, 2, 3]; // x = 1, y = 2
      □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□【f與l成為變量,直接使用即可】

      4.函數參數 - 默認值、參數打包、 數組展開(Default 、Rest 、Spread)

      //Default
      function findArtist(name='lu', age='26') {
          ...
      }
      
      //Rest
      function f(x, ...y) {
        // y is an Array
        return x * y.length;
      }
      f(3, "hello", true) == 6
      
      //Spread
      function f(x, y, z) {
        return x + y + z;
      }
      // Pass each elem of array as argument
      f(...[1,2,3]) == 6

      5.箭頭函數 Arrow functions

      (1).簡化了代碼形式,默認return表達式結果。

      (2).自動綁定語義this,即定義函數時的this。如上面例子中,forEach的匿名函數參數中用到的this。

      6.字符串模板 Template strings

      var name = "Bob", time = "today";
      `Hello ${name}, how are you ${time}?`
      // return "Hello Bob, how are you today?"

      7. Iterators(迭代器)+ for..of

      迭代器有個next方法,調用會返回:

      (1).返回迭代對象的一個元素:{ done: false, value: elem }

      (2).如果已到迭代對象的末端:{ done: true, value: retVal }

      for (var n of ['a','b','c']) {
        console.log(n);
      }
      // 打印a、b、c

      8.生成器 (Generators)

      9.Class

      Class,有constructor、extends、super,但本質上是語法糖(對語言的功能并沒有影響,但是更方便程序員使用)。

      class Artist {
          constructor(name) {
              this.name = name;
          }
      
          perform() {
              return this.name + " performs ";
          }
      }
      
      class Singer extends Artist {
      
          constructor(name, song) {
              super.constructor(name);
              this.song = song;
          }
      
          perform() {
              return super.perform() + "[" + this.song + "]";
          }
      }
      
      let james = new Singer("Etta James", "At last");
      james instanceof Artist; // true
      james instanceof Singer; // true
      
      james.perform(); // "Etta James performs [At last]"

      10.Modules

      ES6的內置模塊功能借鑒了CommonJS和AMD各自的優點:

      (1).具有CommonJS的精簡語法、唯一導出出口(single exports)和循環依賴(cyclic dependencies)的特點。

      (2).類似AMD,支持異步加載和可配置的模塊加載。

      // lib/math.js
      export function sum(x, y) {
        return x + y;
      }
      export var pi = 3.141593;
      
      // app.js
      import * as math from "lib/math";
      alert("2π = " + math.sum(math.pi, math.pi));
      
      // otherApp.js
      import {sum, pi} from "lib/math";
      alert("2π = " + sum(pi, pi));
      
      Module Loaders:
      // Dynamic loading – ‘System’ is default loader
      System.import('lib/math').then(function(m) {
        alert("2π = " + m.sum(m.pi, m.pi));
      });
      
      // Directly manipulate module cache
      System.get('jquery');
      System.set('jquery', Module({$: $})); // WARNING: not yet finalized

      11.Map + Set + WeakMap + WeakSet

      四種集合類型,WeakMap、WeakSet作為屬性鍵的對象如果沒有別的變量在引用它們,則會被回收釋放掉。

      // Sets
      var s = new Set();
      s.add("hello").add("goodbye").add("hello");
      s.size === 2;
      s.has("hello") === true;
      
      // Maps
      var m = new Map();
      m.set("hello", 42);
      m.set(s, 34);
      m.get(s) == 34;
      
      //WeakMap
      var wm = new WeakMap();
      wm.set(s, { extra: 42 });
      wm.size === undefined
      
      // Weak Sets
      var ws = new WeakSet();
      ws.add({ data: 42 });//Because the added object has no other references, it will not be held in the set

      12.Math + Number + String + Array + Object APIs

      一些新的API

      Number.EPSILON
      Number.isInteger(Infinity) // false
      Number.isNaN("NaN") // false
      
      Math.acosh(3) // 1.762747174039086
      Math.hypot(3, 4) // 5
      Math.imul(Math.pow(2, 32) - 1, Math.pow(2, 32) - 2) // 2
      
      "abcde".includes("cd") // true
      "abc".repeat(3) // "abcabcabc"
      
      Array.from(document.querySelectorAll('*')) // Returns a real Array
      Array.of(1, 2, 3) // Similar to new Array(...), but without special one-arg behavior
      
      [0, 0, 0].fill(7, 1) // [0,7,7]
      [1, 2, 3].find(x => x == 3) // 3
      [1, 2, 3].findIndex(x => x == 2) // 1
      [1, 2, 3, 4, 5].copyWithin(3, 0) // [1, 2, 3, 1, 2]
      ["a", "b", "c"].entries() // iterator [0, "a"], [1,"b"], [2,"c"]
      ["a", "b", "c"].keys() // iterator 0, 1, 2
      ["a", "b", "c"].values() // iterator "a", "b", "c"
      
      Object.assign(Point, { origin: new Point(0,0) })

      13. Proxies

      使用代理(Proxy)監聽對象的操作,然后可以做一些相應事情。

      var target = {};
      var handler = {
        get: function (receiver, name) {
          return `Hello, ${name}!`;
        }
      };
      
      var p = new Proxy(target, handler);
      p.world === 'Hello, world!';

      可監聽的操作: get、set、has、deleteProperty、apply、construct、getOwnPropertyDescriptor、defineProperty、getPrototypeOf、setPrototypeOf、enumerate、ownKeys、preventExtensions、isExtensible。

       

      14.Symbols

      Symbol是一種基本類型。Symbol 通過調用symbol函數產生,它接收一個可選的名字參數,該函數返回的symbol是唯一的。

      var key = Symbol("key");
      var key2 = Symbol("key");
      key == key2  //false

      15.Promises

      Promises是處理異步操作的對象,使用了 Promise 對象之后可以用一種鏈式調用的方式來組織代碼,讓代碼更加直觀(類似jQuery的deferred 對象)。

      function fakeAjax(url) {
        return new Promise(function (resolve, reject) {
          // setTimeouts are for effect, typically we would handle XHR
          if (!url) {
            return setTimeout(reject, 1000);
          }
          return setTimeout(resolve, 1000);
        });
      }
      
      // no url, promise rejected
      fakeAjax().then(function () {
        console.log('success');
      },function () {
        console.log('fail');
      });




      posted @ 2022-01-03 13:29  lijian8887833  閱讀(34)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 看全色黄大黄大色免费久久| 亚洲人成电影网站 久久影视| 性欧美VIDEOFREE高清大喷水| 亚洲中文字幕精品第三区| 三人成全免费观看电视剧高清| 九九热免费在线观看视频| 成全高清在线播放电视剧| 不卡视频在线一区二区三区| 人妻出轨av中文字幕| 亚洲av激情久久精品人| 久久人妻av无码中文专区| 少妇激情一区二区三区视频小说 | 亚洲欧洲精品一区二区| 国产av熟女一区二区三区| 国产日韩乱码精品一区二区| 国产精品久线在线观看| 九九热视频在线观看一区| 五月综合婷婷久久网站| 在线播放国产精品三级网| 一本大道久久东京热AV| 少妇厨房愉情理9仑片视频| 色偷偷www.8888在线观看| 深夜宅男福利免费在线观看| 国产香蕉97碰碰久久人人| 人妻色综合网站| 欧美日韩亚洲国产| 亚洲中文字幕无码永久在线 | 九九热在线观看视频精品| 久草热久草热线频97精品| 欧美福利电影A在线播放| 亚洲成亚洲成网| 日韩本精品一区二区三区| 九九久久人妻一区精品色| 国产精品普通话国语对白露脸| 亚洲日产韩国一二三四区| 乐安县| 国产精品中文字幕日韩| 欧美黑人大战白嫩在线| 国产精品一码二码三码| 一区二区三区四区激情视频| 国产成人免费永久在线平台|