{"id":2599,"date":"2022-01-11T22:16:17","date_gmt":"2022-01-11T14:16:17","guid":{"rendered":"https:\/\/blog.odliken.cn\/?p=2599"},"modified":"2023-02-13T18:10:31","modified_gmt":"2023-02-13T10:10:31","slug":"es6%e8%af%ad%e6%b3%95%e6%89%a9%e5%b1%95","status":"publish","type":"post","link":"https:\/\/blog.odjbinail.cn\/?p=2599","title":{"rendered":"ES6\u8bed\u6cd5\u6269\u5c55"},"content":{"rendered":"<h1>\u5269\u4f59\u53c2\u6570\u4e0e\u5c55\u5f00\u8fd0\u7b97\u7b26<\/h1>\n<h2>\u5269\u4f59\u53c2\u6570\u662f\u4ec0\u4e48<\/h2>\n<pre class=\"prettyprint linenums\" ><code>     \/\/1.\u5269\u4f59\u53c2\u6570\n     \/\/const add=(x,y,z,...args)=&gt;{};\n     \/\/2.\u5269\u4f59\u53c2\u6570\u7684\u672c\u8d28\n     \/\/\u5269\u4f59\u53c2\u6570\u6c38\u8fdc\u662f\u4e00\u4e2a\u6570\u7ec4,\u5373\u4f7f\u6ca1\u6709\u503c,\u4e5f\u662f\u7a7a\u6570\u7ec4\n     const add=(x,y,...args)=&gt;{\n      console.log(x,y,args)\n     };\n     add(1,2,3,4,5)\n     \/\/3,4,5-&gt;[3,4,5]<\/code><\/pre>\n<h2>\u5269\u4f59\u53c2\u6570\u7684\u6ce8\u610f\u4e8b\u9879<\/h2>\n<ul>\n<li>1.\u7bad\u5934\u51fd\u6570\u7684\u5269\u4f59\u53c2\u6570<\/li>\n<li>2.\u4f7f\u7528\u5269\u4f59\u53c2\u6570\u66ff\u4ee3 arguments \u83b7\u53d6\u5b9e\u9645\u53c2\u6570<\/li>\n<li>3.\u5269\u4f59\u53c2\u6570\u7684\u4f4d\u7f6e<\/li>\n<\/ul>\n<pre class=\"prettyprint linenums\" ><code>     \/*1.\u7bad\u5934\u51fd\u6570\u7684\u53c2\u6570\u90e8\u5206\u5373\u4f7f\u53ea\u6709\u4e00\u4e2a\u5269\u4f59\u53c2\u6570,\u4e5f\u4e0d\u80fd\u7701\u7565\u5706\u62ec\u53f7\n     const add=(...args)=&gt;{};*\/\n\n     \/*2.\n     const add=function(){\n      console.log(arguments);\n     }; *\/\n     const add=(...args)=&gt;{\n      console.log(args);\n     };\n     add(1,2);\/\/(2)\u00a0[1, 2]\n\n     \/*3.\u5269\u4f59\u53c2\u6570\u53ea\u80fd\u662f\u6700\u540e\u4e00\u4e2a\u53c2\u6570,\u4e4b\u540e\u4e0d\u80fd\u518d\u6709\u5176\u4ed6\u53c2\u6570,\u5426\u5219\u4f1a\u62a5\u9519*\/<\/code><\/pre>\n<h2>\u5269\u4f59\u53c2\u6570\u7684\u5e94\u7528 [\u91cd\u8981]<\/h2>\n<pre class=\"prettyprint linenums\" ><code class=\"language-js\">  \/*1.\u5b8c\u6210 add \u51fd\u6570 \n     \/\/\u6ca1\u6709\u4f53\u73b0\u5269\u4f59\u53c2\u6570\u4f5c\u4e3a\u6570\u7ec4\u7684\u4f18\u52bf,\u4f7f\u7528\u6570\u7ec4\u7684\u4e00\u4e9b\u65b9\u6cd5[reduce \u65b9\u6cd5],\u8ba9\u7a0b\u5e8f\u66f4\u7b80\u5355\n     const add=(...args)=&gt;{\n      let sum=0;\n      for(let i=0;i&lt;args.length;i++){\n        sum+=args[i];\n      }\n      return sum;\n     };\n     console.log(add(1,2,3))\/\/6\n     *\/\n\n     \/*2.\u4e0e\u89e3\u6784\u8d4b\u503c\u7ed3\u5408\u4f7f\u7528\n     \u5269\u4f59\u53c2\u6570\u4e0d\u4e00\u5b9a\u975e\u8981\u4f5c\u4e3a\u51fd\u6570\u53c2\u6570\u4f7f\u7528\n    const [num,...args]=[1,2,3,4];\n    console.log(num,args);\n\n    \/\/\u6570\u7ec4\u7684\u89e3\u6784\u8d4b\u503c\u8fd8\u53ef\u4ee5\u548c\u51fd\u6570\u53c2\u6570\u518d\u7ed3\u5408\u4f7f\u7528\n    const func=([num,...args])=&gt;{};\n    console.log(([1,2,3]))\n    \/\/const func=(...args)=&gt;{};...args \u6c38\u8fdc\u662f\u4e00\u4e2a\u771f\u6b63\u7684\u6570\u7ec4,\u6ca1\u6709\u503c\u4e5f\u662f\u4e2a\u7a7a\u6570\u7ec4 \n    \/\/\u7528\u5728\u51fd\u6570\u53c2\u6570\u4e2d\u7684,\u53eb\u771f\u6b63\u7684\u5269\u4f59\u53c2\u6570\n    \/\/\u5269\u4f59\u53c2\u6570\u8fd8\u53ef\u4ee5\u548c\u5bf9\u8c61\u7684\u89e3\u6784\u8d4b\u503c\u7ed3\u5408\u4f7f\u7528\u7684 z(\u4e5f\u53ef\u4ee5\u662f\u4e2a\u5bf9\u8c61)\u79f0\u4e3a\u5269\u4f59\u5143\u7d20 &#039;\u5269\u4f59\u53c2\u6570\u6c38\u8fdc\u662f\u4e2a\u6570\u7ec4&#039; \u5e76\u4e0d\u77db\u76fe]\n     const {x,y,...z}={a:3,x:1,y:2,b:4};\n     console.log(x,y,z)\n     *\/\n\n     \/*3.\u5bf9\u8c61\u7684\u89e3\u6784\u8d4b\u503c\u540c\u6837\u548c\u6570\u7ec4\u4e00\u6837\u6254\u5230\u51fd\u6570\u4e2d\u6765*\/\n     const func=({x,y,...z})=&gt;{};\n     console.log({a:3,x:1,y:2,b:4})<\/code><\/pre>\n<h2>\u6570\u7ec4\u5c55\u5f00\u8fd0\u7b97\u7b26\u7684\u57fa\u672c\u7528\u6cd5<\/h2>\n<pre class=\"prettyprint linenums\" ><code>     \/\/1.\u8ba4\u8bc6\u5c55\u5f00\u8fd0\u7b97\u7b26\n    \/\/[3,1,2] \u6c42\u6700\u5c0f\u7684\u503c 1 Math.min \u4e0d\u80fd\u63a5\u6536\u6570\u7ec4,\u63a5\u6536\u7684\u53c2\u6570\u5217\u8868\u5f62\u5f0f\n    \/\/\u89e3\u51b3: \u5c06\u6570\u7ec4\u5f62\u5f0f\u8f6c\u6362\u6210\u53c2\u6570\u5217\u8868\u5f62\u5f0f [3,1,2] -&gt; 3,1,2\n\n    \/\/2.\u6570\u7ec4\u5c55\u5f00\u8fd0\u7b97\u7b26\u7684\u57fa\u672c\u7528\u6cd5\n    console.log(Math.min(...[3,1,2]));<\/code><\/pre>\n<h2>\u533a\u5206\u5269\u4f59\u53c2\u6570\u548c\u5c55\u5f00\u8fd0\u7b97\u7b26<\/h2>\n<pre class=\"prettyprint linenums\" ><code>const add=(...args)=&gt;{\n      \/\/\u5269\u4f59\u53c2\u6570\n      console.log(args);\n      \/\/\u5c55\u5f00\u8fd0\u7b97\u7b26\n      console.log(...args);\n    }\n    console.log([...[1,2,3],4]);\/\/[1,2,3,4]<\/code><\/pre>\n<h2>\u6570\u7ec4\u5c55\u5f00\u8fd0\u7b97\u7b26\u7684\u5e94\u7528 [\u91cd\u8981]<\/h2>\n<pre class=\"prettyprint linenums\" ><code>\/*1.\u590d\u5236\u6570\u7ec4\n  const c=[...a];\n  console.log(c);\n  *\/\n\/*\u8fd9\u4e0d\u53eb\u590d\u5236\nconst a=[1,2];\nconst b=a;\na[0]=3;\nconsole.log(b);\/\/[3,2]\n*\/\n\n\/*2.\u5408\u5e76\u6570\u7ec4\nconst a = [1, 2];\nconst b = [3];\nconst c = [4, 5];\nconsole.log([...a, ...b, ...c]); \/\/[1, 2, 3, 4, 5]\nconsole.log([1,...b,2,...a,...c,3]);\/\/[1, 3, 2, 1, 2, 4, 5, 3]\n  *\/\n\n\/*3.\u5b57\u7b26\u4e32\u8f6c\u4e3a\u6570\u7ec4\n\u5b57\u7b26\u4e32\u53ef\u4ee5\u6309\u7167\u6570\u7ec4\u7684\u5f62\u5f0f\u5c55\u5f00\nconsole.log([...&#039;alex&#039;]);\/\/[&#039;a&#039;, &#039;l&#039;, &#039;e&#039;, &#039;x&#039;]\nconsole.log(&#039;alex&#039;.split(&#039;&#039;));\n*\/\n\n\/*4.\u5e38\u89c1\u7684\u7c7b\u6570\u7ec4\u8f6c\u5316\u4e3a\u6570\u7ec4\n(1)arguments\nfunction func() {\n    console.log([...arguments]);\n}\nfunc(1, 2); \/\/(2) [1, 2]\n(2)NodeList\n  console.log([...document.querySelectorAll(&quot;p&quot;)].push()); \/\/[p, p, p]  3\n*\/<\/code><\/pre>\n<h2>\u5bf9\u8c61\u5c55\u5f00\u8fd0\u7b97\u7b26\u7684\u57fa\u672c\u7528\u6cd5<\/h2>\n<pre class=\"prettyprint linenums\" ><code>  \/*1.\u5c55\u5f00\u5bf9\u8c61 \n      \/\/\u5bf9\u8c61\u4e0d\u80fd\u76f4\u63a5\u5c55\u5f00,\u5fc5\u987b\u5728{}\u4e2d\u5c55\u5f00\n      const apple={\n          color:&#039;\u7ea2\u8272&#039;,\n          shape:&#039;\u7403\u5f62&#039;,\n          taste:&#039;\u751c&#039;\n      };\n      \/\/\u5bf9\u8c61\u7684\u5c55\u5f00:\u628a\u5c5e\u6027\u7f57\u5217\u51fa\u6765,\u7528\u9017\u53f7\u5206\u9694,\u653e\u5230\u4e00\u4e2a{}\u4e2d,\u6784\u6210\u65b0\u5bf9\u8c61\n      \/\/\u65b0\u7684\u5bf9\u8c61\n      \/\/  console.log({...apple});\/\/{color: &#039;\u7ea2\u8272&#039;, shape: &#039;\u7403\u5f62&#039;, taste: &#039;\u751c&#039;}\n      *\/\n      \/*2.\u5408\u5e76\u5bf9\u8c61\n      const pen = {\n        color: &quot;\u9ed1\u8272&quot;,\n        shape: &quot;\u5706\u67f1\u5f62&quot;,\n        use: &quot;\u5199\u5b57&quot;,\n      };\n       console.log({...pen});\n      \/\/\u65b0\u5bf9\u8c61\u62e5\u6709\u5168\u90e8\u5c5e\u6027,\u76f8\u540c\u5c5e\u6027,\u540e\u8005\u8986\u76d6\u524d\u8005\n       console.log({ ...apple, ...pen });\/\/{color: &#039;\u9ed1\u8272&#039;, shape: &#039;\u5706\u67f1\u5f62&#039;, taste: &#039;\u751c&#039;, use: &#039;\u5199\u5b57&#039;}\n      console.log({ pen, apple }); \/\/\u90fd\u6709\n      console.log({ ...pen, apple }); \/\/\u5408\u5e76\u5728\u4e00\u8d77\n      *\/<\/code><\/pre>\n<h2>\u5bf9\u8c61\u5c55\u5f00\u8fd0\u7b97\u7b26\u7684\u6ce8\u610f\u4e8b\u9879<\/h2>\n<pre class=\"prettyprint linenums\" ><code>      \/\/1.\u7a7a\u5bf9\u8c61\u7684\u5c55\u5f00\n      \/\/\u5982\u679c\u5c55\u5f00\u4e00\u4e2a\u7a7a\u5bf9\u8c61,\u5219\u6ca1\u6709\u4efb\u4f55\u6548\u679c\n      console.log({ ...{}, a: 1 });\/\/{a: 1}\n      \/\/2.\u975e\u5bf9\u8c61\u7684\u5c55\u5f00\n      \/\/\u5982\u679c\u5c55\u5f00\u7684\u4e0d\u662f\u5bf9\u8c61,\u5219\u4f1a\u81ea\u52a8\u5c06\u5176\u8f6c\u4e3a\u5bf9\u8c61,\u518d\u5c06\u5176\u5c5e\u6027\u7f57\u5217\u51fa\u6765\n      console.log({ ...1 }); \/\/{}\n      console.log(new Object(1)); \/\/Number {1}\n      console.log({ ...undefined }); \/\/{}\n      console.log({ ...null }); \/\/{}\n      console.log({ ...true }); \/\/{}\n      \/\/\u5982\u679c\u5c55\u5f00\u8fd0\u7b97\u7b26\u540e\u9762\u662f\u5b57\u7b26\u4e32,\u5b83\u4f1a\u81ea\u52a8\u8f6c\u6210\u4e00\u4e2a\u7c7b\u4f3c\u6570\u7ec4\u7684\u5bf9\u8c61,\u56e0\u6b64\u8fd4\u56de\u7684\u4e0d\u662f\u7a7a\u5bf9\u8c61\n      console.log({ ...&quot;alex&quot; }); \/\/{0: &#039;a&#039;, 1: &#039;l&#039;, 2: &#039;e&#039;, 3: &#039;x&#039;}\n      console.log([...&quot;alex&quot;]); \/\/[&#039;a&#039;, &#039;l&#039;, &#039;e&#039;, &#039;x&#039;]\n      console.log(...&quot;alex&quot;); \/\/a l e x\n      console.log({ ...[1, 2, 3] }); \/\/{0: 1, 1: 2, 2: 3}\n      \/\/3.\u5bf9\u8c61\u4e2d\u5bf9\u8c61\u5c5e\u6027 \u4e0d\u4f1a\u5c55\u5f00\u7684\n       const apple={\n        feature:{\n          taste:&#039;\u751c&#039;\n        }\n      };\n      const pen={\n        feature:{\n          color:&#039;\u9ed1\u8272&#039;,\n          shape:&#039;\u5706\u67f1\u5f62&#039;\n        },\n\n        use:&#039;\u5199\u5b57&#039;\n      }\n      console.log({...apple})\/\/feature \u4e0d\u4f1a\u5c55\u5f00\n      console.log({...apple,...pen})\/\/\u540e\u9762\u8986\u76d6\u524d\u9762\u7684<\/code><\/pre>\n<h2>\u5bf9\u8c61\u5c55\u5f00\u8fd0\u7b97\u7b26\u7684\u5e94\u7528 [\u91cd\u8981]<\/h2>\n<ul>\n<li>1.\u590d\u5236\u5bf9\u8c61<\/li>\n<li>2.\u7528\u6237\u53c2\u6570\u548c\u9ed8\u8ba4\u53c2\u6570<\/li>\n<\/ul>\n<pre class=\"prettyprint linenums\" ><code>  \/\/1.\n      const a = { x: 1, y: 2 };\n      const c = { ...a };\n      console.log(c, c === a); \/\/{x:1,y:2} false\n\n      \/*2.\u8fd9\u662f\u9ed8\u8ba4\u53c2\u6570\u7684\u4e00\u79cd\u5f62\u5f0f*\/\n      (1)\n      const logUser = ({\n        username = &quot;ZhangSan&quot;,\n        age = 0,\n        sex = &quot;male&quot;,\n      } = {}) =&gt; {\n        console.log(username, age, sex);\n      };\n      (2)\n      const logUser = (userParam) =&gt; {\n        const defaultParam = {\n          username: &quot;zhangsan&quot;,\n          age: 0,\n          sex: &quot;male&quot;,\n        };\n        const param = { ...defaultParam, ...userParam };\n        console.log(param.username);\n        \/\/ const {username, age, sex}={...defaultParam,...userParam};\n        \/\/ console.log(username, age, sex)\n      };\n      logUser();<\/code><\/pre>\n<h1>Set \u548c Map \u6570\u636e\u7ed3\u6784<\/h1>\n<h2>Set \u662f\u4ec0\u4e48<\/h2>\n<pre class=\"prettyprint linenums\" ><code>       \/\/1.\u4ec0\u4e48\u662f Set\n        \/\/[1,2];\n        \/\/\u6570\u7ec4\u662f\u4e00\u7cfb\u5217\u6709\u5e8f\u7684\u6570\u636e\u96c6\u5408\n        \/\/Set \u662f\u4e00\u7cfb\u5217\u65e0\u5e8f,\u6ca1\u6709\u91cd\u590d\u503c\u7684\u6570\u636e\u96c6\u5408\n        \/\/2.\u7406\u89e3 Set\n        \/\/ console.log([1,2,1]);\n        \/\/ console.log(new Array(1,2,1));\/\/[1, 2, 1]\n        \/\/Set \u4e2d\u4e0d\u80fd\u6709\u91cd\u590d\u7684\u6210\u5458\n        \/\/ const s=new Set();\n        \/\/ s.add(1);\n        \/\/ s.add(2);\n        \/\/ console.log(s);\/\/Set(2) {1, 2}\n        \/\/Set \u6ca1\u6709\u4e0b\u6807\u53bb\u6807\u793a\u6bcf\u4e00\u4e2a\u503c,\u6240\u4ee5 Set \u662f\u65e0\u5e8f\u7684,\u4e5f\u4e0d\u80fd\u50cf\u6570\u7ec4\u90a3\u6837\u901a\u8fc7\u4e0b\u6807\u53bb\u8bbf\u95ee Set \u7684\u6210\u5458<\/code><\/pre>\n<h2>Set \u5b9e\u4f8b\u7684\u65b9\u6cd5\u548c\u5c5e\u6027[\u91cd\u70b9]<\/h2>\n<pre class=\"prettyprint linenums\" ><code>        \/\/1.\u65b9\u6cd5\n        \/\/(1)add\n        const s=new Set();\n        s.add(1).add(2).add(2);\n        \/\/ console.log(s);\n        \/\/(2)has \u5224\u65ad\u662f\u5426\u6709\u67d0\u4e2a\u6210\u5458\u7684\n         console.log(s.has(1));\n         console.log(s.has(3));\n        \/\/(3)delete\n        \/\/\u4f7f\u7528 delete \u5220\u9664\u4e0d\u5b58\u5728\u7684\u6210\u5458,\u4ec0\u4e48\u90fd\u4e0d\u4f1a\u53d1\u751f,\u4e5f\u4e0d\u4f1a\u62a5\u9519\n         s.delete(1);\n         s.delete(3);\n        console.log(s);\n        \/\/(4)clear \u4e00\u952e\u6e05\u9664\n         s.clear();\n         console.log(s);\n        \/\/(5)forEach-[\u91cd\u8981]\u904d\u5386 set,\u7ed9\u6211\u4eec\u63d0\u4f9b\u4e00\u4e2a\u8bbf\u95ee set \u6210\u5458\u7684\u4e00\u4e2a\u65b9\u5f0f\n        \/\/forEach \u7b2c\u4e00\u4e2a\u662f\u56de\u8c03\u51fd\u6570,\u7b2c\u4e8c\u4e2a\u662f\u6307\u5b9a\u56de\u8c03\u51fd\u6570\u4e2d this \u6307\u5411\u662f\u4ec0\u4e48\n         s.forEach(function (value,key,set){\n             \/\/Set \u4e2d value=key\n             console.log(value,key,set);\/\/2 2 true\n             console.log(this);\/\/#document\n         },document);\n         console.log(s);\n        \/\/forEach \u6309\u7167\u6210\u5458\u6dfb\u52a0\u8fdb\u96c6\u5408\u7684\u987a\u5e8f\u904d\u5386\n        \/\/2.\u5c5e\u6027\n        \/\/size\n        console.log(s.size);\/\/2\n        console.log(s);\/\/Set(2)\u00a0{1, 2}<\/code><\/pre>\n<h2>Set \u6784\u9020\u51fd\u6570\u7684\u53c2\u6570[\u91cd\u8981]<\/h2>\n<pre class=\"prettyprint linenums\" ><code>    &lt;p&gt;1&lt;\/p&gt;\n    &lt;p&gt;2&lt;\/p&gt;\n    &lt;p&gt;3&lt;\/p&gt;\n    &lt;script&gt;\n     \/\/1.\u6570\u7ec4\n      const s = new Set([1, 2, 1]);\n      console.log(s);\n\n      \/\/2.\n      \/\/ (1)\u5b57\u7b26\u4e32\n      console.log(new Set(&quot;hi&quot;));\n      \/\/ (2)arguments\n      function func() {\n        console.log(new Set(arguments));\n      }\n      \/\/ (3)NodeList\n      console.log(new Set(document.querySelectorAll(&quot;p&quot;)));\n      \/\/ (4)Set\n      const s = new Set([1, 2, 1]);\n      console.log(new Set(s)===s);\/\/\u590d\u5236\n      console.log(s);\n      &lt;\/script&gt;<\/code><\/pre>\n<h2>Set \u7684\u6ce8\u610f\u4e8b\u9879<\/h2>\n<pre class=\"prettyprint linenums\" ><code>   \/\/1.\u5224\u65ad\u91cd\u590d\u7684\u65b9\u5f0f\n    const s = new Set([1, 2, 1]);\n    console.log(1 === 1);\/\/true\n    console.log(NaN===NaN);\/\/false\n    \/\/Set \u5bf9\u91cd\u590d\u7684\u5224\u65ad\u57fa\u672c\u9075\u5faa\u4e25\u683c\u76f8\u7b49(===)\n    const s=new Set([NaN,2,NaN]);\/\/Set(2)\u00a0{NaN, 2}\n    \/\/\u4f46\u662f\u5bf9\u4e8e NaN \u7684\u5224\u65ad\u4e0e === \u4e0d\u540c,Set \u4e2d NaN \u7b49\u4e8e NaN\n    const s=new Set();\n    s.add({}).add({});\n    console.log({}==={});\/\/false\n    console.log(s);\/\/Set(2)\u00a0{{\u2026}, {\u2026}}\n    \/\/ 2.\u4ec0\u4e48\u65f6\u5019\u4f7f\u7528 Set\n    \/\/ \u2460\u6570\u7ec4\u6216\u5b57\u7b26\u4e32\u53bb\u91cd\u65f6\n    \/\/ \u2461\u4e0d\u9700\u8981\u901a\u8fc7\u4e0b\u6807\u8bbf\u95ee,\u53ea\u9700\u8981\u904d\u5386\u65f6\n    \/\/ \u2462\u4e3a\u4e86\u4f7f\u7528 Set \u63d0\u4f9b\u7684\u65b9\u6cd5\u548c\u5c5e\u6027\u65f6(add delete clear has forEach size \u7b49)<\/code><\/pre>\n<h2>Set \u7684\u5e94\u7528[\u91cd\u70b9]<\/h2>\n<pre class=\"prettyprint linenums\" ><code>     \/\/1.\u6570\u7ec4\u53bb\u91cd\n     console.log([...new Set([1,2,1])]);\n     \/\/2.\u5b57\u7b26\u4e32\u53bb\u91cd\n     console.log([...new Set(&#039;abbacbd&#039;)].join(&#039;&#039;));\n     \/\/3.\u5b58\u653e DOM \u5143\u7d20\n     const s=new Set(document.querySelectorAll(&#039;p&#039;))\n     console.log(s)\n     s.forEach(function(elem){\n      elem.style.color=&#039;red&#039;;\n      elem.style.backgroundColor=&#039;yellow&#039;\n     })<\/code><\/pre>\n<h2>Map \u662f\u4ec0\u4e48<\/h2>\n<pre class=\"prettyprint linenums\" ><code>    \/\/Map \u548c\u5bf9\u8c61\u90fd\u662f\u952e\u503c\u5bf9\u7684\u96c6\u5408\n      \/\/\u952e-&gt;\u503c,key-&gt;value\n      const person={\n          name:&#039;alex&#039;,\n          age:18\n      };\n      const m=new Map();\n      m.set(&#039;name&#039;,&#039;alex&#039;);\n      m.set(&#039;age&#039;,18);\n      console.log(m);\/\/Map(2)\u00a0{&#039;name&#039; =&gt; &#039;alex&#039;, &#039;age&#039; =&gt; 18}\n      \/\/2.Map \u548c\u5bf9\u8c61\u7684\u533a\u522b\n      \/\/\u5bf9\u8c61\u4e00\u822c\u7528\u5b57\u7b26\u4e32\u5f53\u505a\u952e\n      const obj = {\n          name: &#039;alex&#039;,\n          true: &#039;true&#039;,\n          [{}]: &#039;object&#039;\n      };\n      console.log(obj);\/\/{name: &#039;alex&#039;, true: &#039;true&#039;, [object Object]: &#039;object&#039;}\n      console.log({}.toString());\/\/[object Object]\n      \/\/\u57fa\u672c\u6570\u636e\u7c7b\u578b:\u6570\u5b57,\u5b57\u7b26\u4e32,\u5e03\u5c14\u503c,undefined,null\n      \/\/\u5f15\u7528\u6570\u636e\u7c7b\u578b:\u5bf9\u8c61([],{},\u51fd\u6570,Set,Map \u7b49)\n      \/\/\u4ee5\u4e0a\u90fd\u53ef\u4ee5\u4f5c\u4e3a Map \u7684\u952e\n      const n = new Map();\n      n.set(&quot;name&quot;, &quot;alex&quot;);\n      n.set(true, &quot;true&quot;);\n      n.set({}, &quot;object&quot;);\n      n.set(new Set([1, 2]), &quot;set&quot;);\n      n.set(undefined, &quot;undefined&quot;);\n      console.log(n); \/\/Map(5)\u00a0{&#039;name&#039; =&gt; &#039;alex&#039;, true =&gt; &#039;true&#039;, {\u2026} =&gt; &#039;object&#039;, Set(2) =&gt; &#039;set&#039;, undefined =&gt; &#039;undefined&#039;}<\/code><\/pre>\n<h2>Map \u5b9e\u4f8b\u7684\u5c5e\u6027\u548c\u65b9\u6cd5[\u91cd\u70b9]<\/h2>\n<pre class=\"prettyprint linenums\" ><code>    \/\/1.\u65b9\u6cd5\n    \/\/(1)set : get \u83b7\u53d6\u6307\u5b9a\u7684\u6210\u5458  add:\u4e0d\u80fd\u5355\u72ec\u83b7\u53d6\u67d0\u4e00\u4e2a\u6210\u5458,\u53ea\u80fd\u901a\u8fc7 forEach \u6765\u904d\u5386\u6240\u6709\u6210\u5458\n    const m=new Map();\n    \/\/\u4f7f\u7528 set \u6dfb\u52a0\u7684\u65b0\u6210\u5458,\u952e\u5982\u679c\u5df2\u7ecf\u5b58\u5728,\u540e\u6dfb\u52a0\u7684\u952e\u503c\u5bf9\u8986\u76d6\u5df2\u6709\u7684\n    m.set(&#039;age&#039;,18).set(true,&#039;true&#039;).set(&#039;age&#039;,20);\n    console.log(m);\n    \/\/(2)get\n    console.log(m.get(&#039;age&#039;));\n    console.log(m.get(&#039;true&#039;));\/\/get \u83b7\u53d6\u4e0d\u5b58\u5728\u7684\u6210\u5458,\u8fd4\u56de undefined\n    console.log(m.get(true));\n    \/\/(3)has:\u5224\u65ad\u6709\u6ca1\u6709\u6307\u5b9a\u7684\u6570..\u952e\n    \/\/(4)delete: \u5220\u9664\u4e0d\u5b58\u5728\u7684\u6210\u5458,\u4ec0\u4e48\u90fd\u4e0d\u4f1a\u53d1\u751f,\u4e5f\u4e0d\u4f1a\u62a5\u9519\n    m.delete(&#039;age&#039;)\n    \/\/(5)clear \n    m.clear()\n    \/\/(6)forEach\n    m.forEach(function(value,key,map){\n      \/\/ console.log(value,key,map===m);\n      console.log(this);\n    },document)\n    \/\/2.\u5c5e\u6027\n    \/\/size: \u83b7\u53d6 map \u6709\u51e0\u4e2a\u6210\u5458 \u5bf9\u8c61\u6ca1\u6709\u7c7b\u4f3c\u7684\u5c5e\u6027\n    console.log(m.size);<\/code><\/pre>\n<h2>Map \u6784\u9020\u51fd\u6570\u7684\u53c2\u6570[\u91cd\u70b9]<\/h2>\n<pre class=\"prettyprint linenums\" ><code>      \/\/1.\u6570\u7ec4\n      \/\/\u53ea\u80fd\u4f20\u4e8c\u7ef4\u6570\u7ec4,\u800c\u4e14\u5fc5\u987b\u4f53\u73b0\u51fa\u952e\u548c\u503c\n      console.log(\n        new Map([\n          [&quot;name&quot;, &quot;alex&quot;],\n          [&quot;age&quot;, 18],\n        ])\n      );\n      \/\/2.Set,Map \u7b49\n      \/\/Set \u4e2d\u4e5f\u5fc5\u987b\u4f53\u73b0\u51fa\u952e\u548c\u503c\n      const s = new Set([\n        [&quot;name&quot;, &quot;alex&quot;],\n        [&quot;age&quot;, 18],\n      ]);\n      console.log(new Map(s));\n      console.log(s);\n\n      \/\/Map\n      const m1 = new Map([\n        [&quot;name&quot;, &quot;alex&quot;],\n        [&quot;age&quot;, 18],\n      ]);\n      console.log(m1);\/\/Map(2)\u00a0{&#039;name&#039; =&gt; &#039;alex&#039;, &#039;age&#039; =&gt; 18}\n      const m2=new Map(m1);\/\/Map \u590d\u5236\n      console.log(m2,m2===m1);\/\/false<\/code><\/pre>\n<h2>Map \u7684\u6ce8\u610f\u4e8b\u9879<\/h2>\n<ul>\n<li>\u5224\u65ad\u952e\u540d\u662f\u5426\u76f8\u540c\u7684\u65b9\u5f0f<\/li>\n<li>\u4ec0\u4e48\u65f6\u5019\u4f7f\u7528 Map<\/li>\n<\/ul>\n<pre class=\"prettyprint linenums\" ><code>    \/\/1.\u57fa\u672c\u9075\u5faa\u4e25\u683c\u76f8\u7b49(===)\n    \/\/\u4f8b\u5916\u5c31\u662f NaN,Map \u4e2d MaN \u4e5f\u662f\u7b49\u4e8e NaN\n    console.log(NaN === NaN);\/\/false\n    const m = new Map();\n    m.set(NaN, 1).set(NaN, 2);\n    console.log(m);\/\/Map(1)\u00a0{NaN =&gt; 2}\n    \/\/2.\u5982\u679c\u53ea\u662f\u9700\u8981 key-&gt;value \u7684\u7ed3\u6784,\u6216\u8005\u9700\u8981\u5b57\u7b26\u4e32\u4ee5\u5916\u7684\u503c\u505a\u952e,\u4f7f\u7528 Map \u66f4\u5408\u9002\n    \/\/forEach  \u5bf9\u8c61 for in\n    \/\/size\n    \/\/\u53ea\u6709\u6a21\u62df\u73b0\u5b9e\u4e16\u754c\u7684\u5b9e\u4f53\u65f6,\u624d\u662f\u7528\u5bf9\u8c61\n    const person={};<\/code><\/pre>\n<h2>Map \u7684\u5e94\u7528[\u91cd\u70b9]<\/h2>\n<ul>\n<li>\u4f5c\u4e1a: \u4e5f\u53ef\u7528 map???\u6620\u5c04,map \u7684 forEach<\/li>\n<\/ul>\n<pre class=\"prettyprint linenums\" ><code>     const [p1, p2, p3] = document.querySelectorAll(&quot;p&quot;);\n      \/\/ console.log(p1,p2,p3);\n      \/*(1)\n        const m=new Map();\n        m.set(p1,&#039;red&#039;);\n        m.set(p2,&#039;green&#039;);\n        m.set(p3,&#039;blue&#039;);*\/\n      \/\/(2)\n      const m = new Map([\n        \/\/\u5bf9\u8c61\u5b57\u9762\u91cf\u5f62\u5f0f,,\u4e5f\u53ef\u7528 map???\u6620\u5c04,map \u7684 forEach\n        [p1, { color: &quot;red&quot; }],\n        [p2, { color: &quot;green&quot; }],\n        [p3, { color: &quot;blue&quot;, backgroundColor: &quot;orange&quot;, fontSize: &quot;40px&quot; }],\n      ]);\n      \/\/ m.forEach((color, elem) =&gt; {\n      \/\/     elem.style.color = color;\n      \/\/ }); [p1,&#039;red&#039;]\n      m.forEach((propObj, elem) =&gt; {\n        for (const p in propObj) {\n          elem.style[p] = propObj[p];\n        }\n      });\n      console.log(m);<\/code><\/pre>\n<p><img data-original=\"http:\/\/blog.odjbinail.cn\/wp-content\/uploads\/2022\/01\/2022012321170169.png\"  alt=\"\" \/><\/p>\n<noscript><img decoding=\"async\" src=\"http:\/\/blog.odjbinail.cn\/wp-content\/uploads\/2022\/01\/2022012321170169.png\" alt=\"\" \/><\/p><\/noscript>\n<h1>\u904d\u5386\u5668\u4e0e for...of \u5faa\u73af<\/h1>\n<h2>Iterator \u662f\u4ec0\u4e48<\/h2>\n<ul>\n<li>Iterator \u7684\u4f5c\u7528<\/li>\n<li>\u5bfb\u627e Iterator<\/li>\n<li>\u4f7f\u7528 Iterator<\/li>\n<li>\u4ec0\u4e48\u662f Iterator<\/li>\n<\/ul>\n<pre class=\"prettyprint linenums\" ><code>    \/\/1.Iterator:\u904d\u5386\u5668(\u8fed\u4ee3\u5668)\n    \/\/for()  [1,2].forEach()\n    \/\/ new Set().forEach()\n    \/\/2.console.log([1,2][Symbol.iterator]());\n    \/\/3.it:\u53ef\u904d\u5386\u5bf9\u8c61(\u53ef\u8fed\u4ee3\u5bf9\u8c61):\u6709 next \u65b9\u6cd5,\u800c\u4e14 next \u65b9\u6cd5\u8c03\u7528\u4e4b\u540e\u8fd4\u56de\u4e00\u4e2a\u5bf9\u8c61,\u8fd9\u5bf9\u8c61\u4f1a\u6709 value \u548c done \u4e24\u4e2a\u5c5e\u6027\n    const it=[1,2][Symbol.iterator]();\n    console.log(it.next());\/\/{value: 1, done: false}\n    console.log(it.next());\/\/{value: 2, done: false}\n    console.log(it.next());\/\/{value: undefined, done: true}\n    \/\/4.Symbol.iterator (\u53ef\u904d\u5386\u5bf9\u8c61\u7684\u751f\u6210\u65b9\u6cd5) -&gt; it(\u53ef\u904d\u5386\u5bf9\u8c61) -&gt;it.next() -&gt;...(\u76f4\u5230 done \u4e3a true)<\/code><\/pre>\n<h2>Iterator \u89e3\u60d1<\/h2>\n<pre class=\"prettyprint linenums\" ><code>   1.\u4e3a\u4ec0\u4e48\u9700\u8981 Iterator \u904d\u5386\u5668\n    \u904d\u5386\u6570\u7ec4:for \u5faa\u73af\u548c forEach \u65b9\u6cd5\n    \u904d\u5386\u5bf9\u8c61:for in \u5faa\u73af\n    Iterator \u904d\u5386\u5668\u662f\u4e00\u4e2a\u7edf\u4e00\u7684\u904d\u5386\u65b9\u5f0f[\u6570\u7ec4\u5bf9\u8c61\u90fd\u53ef\u4ee5\u4f7f\u7528\u5176\u904d\u5386]\n    \/\/ console.log([][Symbol.iterator]());\/\/Array Iterator\u00a0{}\n    \/\/ console.log({}[Symbol.iterator]);\/\/undefined\n    2.\u5982\u4f55\u66f4\u65b9\u4fbf\u7684\u4f7f\u7528 Iterator\n    \/\/\u9ebb\u70e6:Symbol.iterator-&gt;it-&gt;next();\n    \u6211\u4eec\u4e00\u822c\u4e0d\u4f1a\u76f4\u63a5\u4f7f\u7528 Iterator \u53bb\u904d\u5386\n    \/\/for..of<\/code><\/pre>\n<h2>\u8ba4\u8bc6 for.of<\/h2>\n<pre class=\"prettyprint linenums\" ><code>      \/\/1.\n      const arr=[1,2,3];\n      \/* const it=arr[Symbol.iterator]();\n       let next= it.next();\n        console.log(next);\/\/{value:1,done:false}\n        while (!next.done){\n            console.log(next.value);\n            next=it.next();\n            console.log(next);\n        }*\/\n        \/\/(3)\u9690\u85cf\u4e0a\u8ff0\u6b65\u9aa4,\u5c01\u88c5[\u5927\u90e8\u5206\u4f7f\u7528\u8fd9]\n      for (const item of arr){\n          console.log(item);\/\/1 2 3\n      }\n      \/\/for...of \u5faa\u73af\u53ea\u4f1a\u904d\u5386\u51fa\u90a3\u4e9b done \u4e3a false \u65f6,\u5bf9\u5e94\u7684 value \u503c<\/code><\/pre>\n<h2>for...of \u7684\u7528\u6cd5[\u7ecf\u5e38\u4f7f\u7528]<\/h2>\n<ul>\n<li>\u4e0e break,continue \u4e00\u8d77\u4f7f\u7528<\/li>\n<li>\u5728 for...of \u4e2d\u53d6\u5f97\u6570\u7ec4\u7684\u7d22\u5f15<\/li>\n<\/ul>\n<pre class=\"prettyprint linenums\" ><code>      \/\/2.\n      const arr=[1,2,3];\n      for(const item of arr){\n        if(item===2){\n          \/\/ break;\u8df3\u51fa\u5faa\u73af\n          continue\/\/\u53ea\u8df3\u8fc7 2,\u7ee7\u7eed\u5faa\u73af\n        }\n        console.log(item);\n      }\n      \/\/3.keys()\u5f97\u5230\u7684\u662f\u7d22\u5f15\u7684\u53ef\u904d\u5386\u5bf9\u8c61,\u53ef\u4ee5\u904d\u5386\u51fa\u7d22\u5f15\u503c\n      console.log(arr.keys());\n      for(const key of arr.keys()){\n        console.log(key);\/\/0 1 2\n      }\n      \/\/4.values() \u5f97\u5230\u7684\u662f\u503c\u7684\u53ef\u904d\u5386\u5bf9\u8c61,\u53ef\u4ee5\u904d\u5386\u51fa\u503c\n      for(const value of arr.values()){\n        console.log(value);\n      }\n      \/\/ \u4e0b\u9762\u7b80\u5355\u4e9b\n      for(const value of arr){\n        console.log(value);\n      }\n      \/\/5.entries() \u5f97\u5230\u7684\u662f\u7d22\u5f15+\u503c\u7ec4\u6210\u7684\u6570\u7ec4\u7684\u53ef\u904d\u5386\u5bf9\u8c61\n      for(const entries of arr.entries()){\n        console.log(entries);\/\/[0,1].\n      }\n      \/\/\u89e3\u6784\u8d4b\u503c\u5199\u6cd5\n      for(const [index,value] of arr.entries()){\n        console.log(index,value);\n      }\/\/0 1 ,1 2<\/code><\/pre>\n<h2>\u539f\u751f\u53ef\u904d\u5386[\u6807\u7ea2]\u548c\u975e\u539f\u751f\u53ef\u904d\u5386<\/h2>\n<ul>\n<li>\u4ec0\u4e48\u662f\u53ef\u904d\u5386<\/li>\n<li>\u539f\u751f\u53ef\u904d\u5386\u7684\u6709\u54ea\u4e9b?<\/li>\n<li>\u975e\u539f\u751f\u53ef\u904d\u5386\u7684\u6709\u54ea\u4e9b?<\/li>\n<\/ul>\n<pre class=\"prettyprint linenums\" ><code>    \/\/1.\u53ea\u8981\u6709 Symbol.iterator \u65b9\u6cd5,\u5e76\u4e14\u8fd9\u4e2a\u65b9\u6cd5\u53ef\u4ee5\u751f\u6210\u53ef\u904d\u5386\u5bf9\u8c61,\u5c31\u662f\u53ef\u904d\u5386\u7684,\u5c31\u53ef\u4ee5\u4f7f\u7528 for...of \u5faa\u73af\u6765\u7edf\u4e00\u904d\u5386\n    \/\/2.\u6570\u7ec4,\u5b57\u7b26\u4e32,Set,Map,arguments,NodeList\n   for (const item of [1, 2, 3]) {\n        console.log(item); \/\/1 2 3\n      }\n      for (const item of &quot;hi&quot;) {\n        console.log(item); \/\/h i\n      }\n      for (const item of new Set([1, 2, 3])) {\n        console.log(item); \/\/1 2 3\n      }\n      for (const elem of document.querySelectorAll(&quot;p&quot;)) {\n        console.log(elem);\n        elem.style.color = &quot;red&quot;;\n      }\n    \/\/3.\u4e00\u822c\u7684\u5bf9\u8c61\n      const person = { sex: &quot;male&quot;, age: 18 };\n      \/\/console.log(person[Symbol.iterator]());\u00d7\u00d7 \u7528 for in \u904d\u5386 person \u5bf9\u8c61\n      \/\/for(const item of person){}\/\/person is not iterable\n      \/*\u4e0b\u9762\u7684\u4e00\u822c\u5de5\u4f5c\u7528\u4e0d\u5230,\u5e2e\u52a9\u7406\u89e3 Symbol.iterator,\u7b80\u5355\u7406\u89e3\u4e0b*\/\n      person[Symbol.iterator] = () =&gt; {\n        let index = 0;\n        return {\n          next() {\n            index++;\n            if (index === 1) {\n              return {\n                value: person.age,\n                done: false,\n              };\n            } else if (index === 2) {\n              return {\n                value: person.sex,\n                done: false,\n              };\n            } else {\n              return {\n                done: true,\n              };\n            }\n          },\n        };\n      };\n      for (const item of person) {\n        console.log(item);\n      }\n      \/\/4.\u6709 lenth \u548c\u7d22\u5f15\u5c5e\u6027\u7684\u5bf9\u8c61\n       \/\/(1)\n      const obj = {\n        &#039;0&#039;: &#039;alex&#039;,\n        &#039;1&#039;: &#039;male&#039;,\n        length: 2\n      };\n      obj[Symbol.iterator] =Array.prototype[Symbol.iterator];\n\n      \/*(2)\n      const obj = {\n        0: &quot;alex&quot;,\n        1: &quot;male&quot;,\n        lenth: 2,\n      };\n      obj[Symbol.iterator] = () =&gt; {\n        let index = 0;\n        return {\n          next() {\n            let value, done;\n            if (index &lt; obj.lenth) {\n              value = obj[index];\n              done = false;\n            } else {\n              value = undefined;\n              done = true;\n            }\n            index++;\n            return {\n              value,\n              done,\n            };\n          },\n        };\n      };*\/\n      for (const item of obj) {\n        console.log(item);\n      }\/\/alex  male<\/code><\/pre>\n<h2>\u4f7f\u7528\u4e86 Iterator \u7684\u573a\u5408[\u6807\u7ea2]<\/h2>\n<pre class=\"prettyprint linenums\" ><code>    \/\/\u539f\u59cb\u53ef\u904d\u5386\u7684\n    \/\/Array \u6570\u7ec4,String \u5b57\u7b26\u4e32,Set,Map,\u51fd\u6570\u7684 arguments \u5bf9\u8c61,NodeList \u5bf9\u8c61\n    \/\/for..of\n    \/\/1.\u6570\u7ec4\u7684\u5c55\u5f00\u8fd0\u7b97\u7b26\n    console.log(...[1,2,3]);\/\/1 2 3\n    console.log(...&#039;str&#039;);\/\/s t r\n    console.log(...new Set([1,2,3]));\/\/1 2 3\n    console.log(...{});\u00d7,\u4e0d\u80fd\u6309\u7167\u6570\u7ec4\u5c55\u5f00,\u662f\u4e0d\u53ef\u904d\u5386\u7684\n    console.log({...{}});\/\/\u6309\u7167\u5bf9\u8c61\u5c55\u5f00\n    \/\/2.\u6570\u7ec4\u7684\u89e3\u6784\u8d4b\u503c\n    const [a,b]=[1,2];\/\/1 2\n    const [a,b]=[...[1,2]];\n    const [a,b]=&#039;hi&#039;;\n    const [a,b]=[...&#039;hi&#039;];\/\/h i\n    const [a,b]=[...new Set([3,4])];\n    console.log(a,b);\n    \/\/3.Set \u548c Map \u7684\u6784\u9020\u51fd\u6570\n    new Set(iterator)\n    new Map(iterator)<\/code><\/pre>\n<h2>ES6 \u7684\u65b0\u589e\u65b9\u6cd5<\/h2>\n<h2>\u5b57\u7b26\u4e32\u7684 includes()[\u5e38\u7528]<\/h2>\n<pre class=\"prettyprint linenums\" ><code>    \/\/1.\u5224\u65ad\u5b57\u7b26\u4e32\u4e2d\u662f\u5426\u542b\u6709\u67d0\u4e9b\u5b57\u7b26\n    \/\/1.\u57fa\u672c\u7528\u6cd5\n    console.log(&#039;abc&#039;.includes(&#039;a&#039;));\/\/true\n    console.log(&#039;abc&#039;.includes(&#039;ac&#039;));\/\/false\n    \/\/2.\u7b2c\u4e8c\u4e2a\u53c2\u6570\n    \/\/\u8868\u793a\u5f00\u59cb\u641c\u7d22\u7684\u4f4d\u7f6e,\u9ed8\u8ba4\u662f 0\n    console.log(&#039;abc&#039;.includes(&#039;a&#039;));\n    console.log(&#039;abc&#039;.includes(&#039;a&#039;,0));\/\/true\n    console.log(&#039;abc&#039;.includes(&#039;a&#039;,1));\/\/false\n    \/\/3.\u5e94\u7528[bug:\u5982\u679c\u672c\u8eab\u6709?,\u6dfb\u52a0&amp;]\n    let url=&#039;https:\/\/www.imooc.com\/course\/list&#039;\n    const addURLParam=(url,name,value)=&gt;{\n    url+=url.includes(&#039;?&#039;)?&#039;&amp;&#039;:&#039;?&#039;;\n    url+=`${name}=${value}`;\n    return url;\n    };\n    url=addURLParam(url,&#039;c&#039;,&#039;fe&#039;);\n    console.log(url);\/\/https:\/\/www.imooc.com\/course\/list?c=fe\n    url=addURLParam(url,&#039;sort&#039;,&#039;pop&#039;);\n    console.log(url);\/\/https:\/\/www.imooc.com\/course\/list?c=fe&amp;sort=pop<\/code><\/pre>\n<h2>padStart()\u548c padEnd()<\/h2>\n<pre class=\"prettyprint linenums\" ><code>    \/\/\u8865\u5168\u5b57\u7b26\u4e32\u957f\u5ea6\n    \/\/1.\u57fa\u672c\u7528\u6cd5\n    console.log(&#039;x&#039;.padStart(5,&#039;ab&#039;));\/\/ababx\n    console.log(&#039;x&#039;.padEnd(5,&#039;ab&#039;));\/\/xabab\n    console.log(&#039;x&#039;.padEnd(4,&#039;ab&#039;));\/\/xaba\n    \/\/2.\u6ce8\u610f\u4e8b\u9879\n    \/\/\u539f\u5b57\u7b26\u4e32\u7684\u957f\u5ea6,\u7b49\u4e8e\u6216\u5927\u4e8e\u6700\u5927\u957f\u5ea6,\u4e0d\u4f1a\u6d88\u51cf\u539f\u5b57\u7b26\u4e32,\n    \/\/ \u5b57\u7b26\u4e32\u8865\u5168\u4e0d\u751f\u6548,\u8fd4\u56de\u539f\u5b57\u7b26\u4e32\n    console.log(&#039;xxx&#039;.padStart(2,&#039;ab&#039;));\/\/xxx\n    console.log(&#039;xxx&#039;.padEnd(2,&#039;ab&#039;));\/\/xxx\n    \/\/\u7528\u6765\u8865\u5168\u7684\u5b57\u7b26\u4e32\u4e0e\u539f\u5b57\u7b26\u4e32\u957f\u5ea6\u4e4b\u548c\u8d85\u8fc7\u4e86\u6700\u5927\u957f\u5ea6,\n    \/\/ \u622a\u53bb\u8d85\u51fa\u4f4d\u6570\u7684\u8865\u5168\u5b57\u7b26\u4e32,\u539f\u5b57\u7b26\u4e32\u4e0d\u52a8 \n    console.log(&#039;abc&#039;.padStart(10,&#039;0123456789&#039;));\/\/0123456abc\n    console.log(&#039;abc&#039;.padEnd(10,&#039;0123456789&#039;));\/\/abc0123456\n    \/\/\u5982\u679c\u7701\u7565\u7b2c\u4e8c\u4e2a\u53c2\u6570,\u9ed8\u8ba4\u4f7f\u7528\u7a7a\u683c\u8865\u5168\u957f\u5ea6\n    console.log(&#039;x&#039;.padStart(4));\n    console.log(&#039;x&#039;.padEnd(4));\n    \/\/3.\u5e94\u7528: \u663e\u793a\u65e5\u671f\u683c\u5f0f\n    \/\/2022-10-01\n    console.log(&#039;10&#039;.padStart(2,0));\/\/10\n    console.log(&#039;1&#039;.padStart(2,0));\/\/01<\/code><\/pre>\n<h2>trimStart()\u548c trimEnd()<\/h2>\n<pre class=\"prettyprint linenums\" ><code>    \/\/\u6e05\u9664\u5b57\u7b26\u4e32\u7684\u9996\u5c3e\u7a7a\u683c,\u4e2d\u95f4\u7684\u7a7a\u683c\u4e0d\u4f1a\u6e05\u9664\n    \/\/1.\u57fa\u672c\u7528\u6cd5\n    const s = &#039; a b c &#039;;\n    console.log(s);\n    console.log(s.trimStart());\/\/a b c \n    \/\/console.log(s.trimLeft());\/\/a b c \u53bb\u5934 \u522b\u540d\n    console.log(s.trimEnd());\/\/ a b c\n    \/\/console.log(s.trimRight());\/\/ a b c \u53bb\u5c3e\n    console.log(s.trim());\/\/\u53bb\u9996\u5c3e\u7a7a\u683c\n    \/\/2.\u5e94\u7528: \u8868\u5355\u63d0\u4ea4\n    const usernameInput=document.getElementById(&#039;username&#039;);\n    const btn=document.getElementById(&#039;btn&#039;);\n    btn.addEventListener(&#039;click&#039;,()=&gt;{\n      console.log(usernameInput.value);\n      \/\/\u9a8c\u8bc1\n      if(usernameInput.value.trim()!==&#039;&#039;){\n        console.log(&#039;\u53ef\u4ee5\u63d0\u4ea4&#039;);\n      }else{\n        console.log(&#039;\u4e0d\u80fd\u63d0\u4ea4&#039;);\n      }\n    },false)<\/code><\/pre>\n<h2>\u6570\u7ec4\u7684 includes()[\u6807\u7ea2]<\/h2>\n<pre class=\"prettyprint linenums\" ><code>    \/\/\u5224\u65ad\u6570\u7ec4\u4e2d\u662f\u5426\u542b\u6709\u67d0\u4e2a\u6210\u5458\n    console.log([1, 2, 3].includes(&#039;2&#039;));\/\/false\n    console.log([1, 2, 3].includes(2));\/\/true\n    \/\/\u7b2c\u4e8c\u4e2a\u53c2\u6570\u8868\u793a\u641c\u7d22\u7684\u8d77\u59cb\u4f4d\u7f6e,\u9ed8\u8ba4\u503c\u662f 0\n    console.log([1, 2, 3].includes(2,2));\/\/false\n    \/\/\u57fa\u672c\u9075\u5faa\u4e25\u683c\u76f8\u7b49(===),\u4f46\u662f\u5bf9\u4e8e NaN \u7684\u5224\u65ad\u4e0e===\u4e0d\u540c,,includes \u8ba4\u4e3a NaN===NaN\n    console.log(NaN===NaN);\/\/false\n    console.log([1,2,NaN].includes(NaN));\/\/true\n    \/\/2.\u5e94\u7528: \u53bb\u91cd\n    const arr=[];\n    for (const item of[1,2,1]){\n        if (!arr.includes(item)){\n            arr.push(item);\n        }\n    }\n    console.log(arr);\/\/(2)\u00a0[1, 2]<\/code><\/pre>\n<h2>Array.from()[\u6807\u7ea2]<\/h2>\n<pre class=\"prettyprint linenums\" ><code>   \/\/\u5c06\u5176\u4ed6\u6570\u636e\u7c7b\u578b\u8f6c\u6362\u4e3a\u6570\u7ec4\n    \/\/1.\u57fa\u672c\u7528\u6cd5\n    console.log(Array.from(&#039;str&#039;));\/\/[&#039;s&#039;, &#039;t&#039;, &#039;r&#039;]\n    \/\/2.\u54ea\u4e9b\u53ef\u4ee5\u901a\u8fc7 Array.from()\u8f6c\u6362\u6210\u6570\u7ec4?\n    \/\/2.1 \u6240\u6709\u53ef\u904d\u5386\u7684\n    \/\/\u6570\u7ec4,\u5b57\u7b26\u4e32,Set,Map,NodeList,arguments\n    console.log(Array.from(new Set([1,2,1])));\/\/(2)\u00a0[1, 2]\n    console.log([...new Set([1,2,1])]);\/\/\u63a8\u8350 (2)\u00a0[1, 2]\n    \/\/2.2 \u62e5\u6709 length \u5c5e\u6027\u7684\u4efb\u610f\u5bf9\u8c61\n    const obj={\n         &#039;0&#039;:&#039;a&#039;,\n         &#039;1&#039;:&#039;b&#039;,\n         name:&#039;aled&#039;,\n         length:3\n     };\n    \/\/console.log([...obj]);\/\/\u9519\u8bef\u7684\n    console.log(Array.from(obj));\/\/(3)\u00a0[&#039;a&#039;, &#039;b&#039;, undefined]\n    \/\/3.\u7b2c\u4e8c\u4e2a\u53c2\u6570\n    \/\/\u4f5c\u7528\u7c7b\u4f3c\u4e8e\u6570\u7ec4\u7684 map \u65b9\u6cd5,\u7528\u6765\u5bf9\u6bcf\u4e2a\u5143\u7d20\u8fdb\u884c\u5904\u7406,\u5c06\u5904\u7406\u540e\u7684\u503c\u653e\u5165\u8fd4\u56de\u7684\u6570\u7ec4\n      console.log(\n         [1, 2].map(value =&gt; {\n             return value * 2;\n        }))\/\/(2) [2, 4]\n    \/\/ console.log(Array.from(&#039;12&#039;,value=&gt;value*2));\/\/(2) [2, 4]\n    \/\/ console.log(Array.from(&#039;12&#039;).map(value=&gt;value*2));\/\/(2) [2, 4]\n    \/\/4.\u7b2c\u4e09\u4e2a\u53c2\u6570\n    Array.from(&#039;12&#039;,value=&gt;{\n        console.log(this);\n    },document);\/\/this \u6307\u5411 window\n    Array.from(&#039;12&#039;,function (){\/\/\u4e00\u822c\u51fd\u6570\u53ef\u4ee5\u4fee\u6539 this \u6307\u5411\n        console.log(this);\n    },document);<\/code><\/pre>\n<h2>find()\u548c findIndex()[\u4e86\u89e3]<\/h2>\n<pre class=\"prettyprint linenums\" ><code>    \/\/find():\u627e\u5230\u6ee1\u8db3\u6761\u4ef6\u7684\u4e00\u4e2a\u7acb\u5373\u8fd4\u56de\n    \/\/findIndex():\u627e\u5230\u6ee1\u8db3\u6761\u4ef6\u7684\u4e00\u4e2a,\u7acb\u5373\u8fd4\u56de\u5176\u7d22\u5f15\n    \/\/1.\u57fa\u672c\u7528\u6cd5\n    [1, 5, 10, 15].find((value, index, arr) =&gt; {\n    \/\/  console.log(value, index, arr);\n    console.log(this);\/\/\u6307\u5411 window,\u82e5\u8981\u6539\u53d8\u6307\u5411,\u5219\u6362\u4e3a\u4e00\u822c\u51fd\u6570\n    return value &gt; 9;\n    });\n    console.log(\n        [1, 5, 10, 15].findIndex((value, index, arr) =&gt; {\n        \/\/ console.log(value,index,arr);\n        return value &gt; 9;\n      }) );\/\/2\n    \/\/2.\u5e94\u7528\n    const students = [\n        {\n            name: &#039;\u5f20\u4e09&#039;,\n            sex: &#039;\u7537&#039;,\n            age: 16\n        },\n        {\n            name: &#039;\u674e\u56db&#039;,\n            sex: &#039;\u5973&#039;,\n            age: 13\n        }\n    ];\n    console.log(students.find(value=&gt;value.sex===&#039;\u5973&#039;));\/\/\u7b2c\u4e00\u4e2a\u5973\u5b66\u751f\n    console.log(students.findIndex(value=&gt;value.sex===&#039;\u5973&#039;));\/\/1<\/code><\/pre>\n<h2>Object.assign()[\u6807\u7ea2]<\/h2>\n<pre class=\"prettyprint linenums\" ><code>    \/\/\u7528\u6765\u5408\u5e76\u5bf9\u8c61\n    \/\/1.\u57fa\u672c\u7528\u6cd5\n    \/\/ Object.assign(\u76ee\u6807\u5bf9\u8c61,\u6e90\u5bf9\u8c61 1,...);\u8fd4\u56de\u76ee\u6807\u5bf9\u8c61\n    const apple = {\n        color: &#039;\u7ea2\u8272&#039;,\n        shape: &#039;\u5706\u5f62&#039;,\n        taste: &#039;\u751c&#039;\n    };\n    const pen = {\n        color: &#039;\u9ed1\u8272&#039;,\n        shape: &#039;\u5706\u67f1\u5f62&#039;,\n        use: &#039;\u5199\u5b57&#039;\n    };\n    console.log(Object.assign(apple, pen));\/\/\u76f8\u540c\u5c5e\u6027,\u540e\u9762\u8986\u76d6\u524d\u9762\u7684\n    \/\/Object.assign \u76f4\u63a5\u5408\u5e76\u5230\u4e86\u7b2c\u4e00\u4e2a\u53c2\u6570\u4e2d,\u8fd4\u56de\u7684\u5c31\u662f\u5408\u5e76\u540e\u7684\u5bf9\u8c61===apple\n    \/\/\u8fd4\u56de\u4e00\u4e2a\u65b0\u5bf9\u8c61: \u53ef\u4ee5\u5408\u5e76\u591a\u4e2a\u5bf9\u8c61\n    console.log(Object.assign({},apple, pen));\/\/apple \u4e0d\u4f1a\u53d1\u751f\u53d8\u5316\n    console.log({...apple, ...pen});\/\/\u662f\u4e2a\u65b0\u5bf9\u8c61\n    \/\/2.\u6ce8\u610f\u4e8b\u9879\n    \/\/2.1 \u57fa\u672c\u6570\u636e\u7c7b\u578b\u4f5c\u4e3a\u6e90\u5bf9\u8c61\n    \/\/\u4e0e\u5bf9\u8c61\u7684\u5c55\u5f00\u7c7b\u4f3c,\u5148\u8f6c\u6362\u6210\u5bf9\u8c61,\u518d\u5408\u5e76\n    console.log(Object.assign({},undefined));\/\/{}\n    console.log(Object.assign({},null));\/\/{}\n    console.log(Object.assign({},1));\/\/{}\n    console.log(Object.assign({},true));\/\/{}\n    console.log(Object.assign({},&#039;str&#039;));\/\/{0: &#039;s&#039;, 1: &#039;t&#039;, 2: &#039;r&#039;}\n    \/\/2.2 \u540c\u540d\u5c5e\u6027\u7684\u66ff\u6362: \u540e\u9762\u7684\u76f4\u63a5\u8986\u76d6\u524d\u9762\u7684 color:[&#039;\u9ed1\u8272&#039;,&#039;\u94f6\u8272&#039;]\u4e00\u8d77\u8986\u76d6\u524d\u9762\u7684\n    console.log(Object.assign({},apple,pen));\n    \/\/3.\u5e94\u7528:\u5408\u5e76\u9ed8\u8ba4\u53c2\u6570\u548c\u7528\u6237\u53c2\u6570\n    const logUser=userOptions=&gt;{\n        const DEFAULTS={\n            username:&#039;Zhangsan&#039;,\n            age:0,\n            sex:&#039;male&#039;\n        };\n        const options=Object.assign({},DEFAULTS,userOptions);\n\n        console.log(options);\n    };\n    \/\/ const options=Object.assign({},DEFAULTS,undefined);\n    logUser();\/\/\u76f8\u5f53\u4e8e\u4f20\u4e00\u4e2a undefined\n    logUser({});\/\/\u9ed8\u8ba4\u53c2\u6570\n    logUser({username:&#039;Alex&#039;});\/\/{username: &#039;Alex&#039;, age: 0, sex: &#039;male&#039;}<\/code><\/pre>\n<h2>Object.keys()\u3001Object.values()\u548c Object.entries()<\/h2>\n<pre class=\"prettyprint linenums\" ><code>     \/\/1.\u57fa\u672c\u7528\u6cd5\n      const person={\n          name:&#039;Alex&#039;,\n          age:18\n      };\n      console.log(Object.keys(person));\/\/[&#039;name&#039;, &#039;age&#039;]\n      console.log(Object.values(person));\/\/[&#039;Alex&#039;, 18]\n      console.log(Object.entries(person));\/\/\u4e8c\u7ef4\u6570\u7ec4 [Array(2), Array(2)]\n      \/\/2.\u4e0e\u6570\u7ec4\u7c7b\u4f3c\u65b9\u6cd5\u7684\u533a\u522b\n      \/*\u5bf9\u8c61\u7684 Object.keys...\u662f\u6784\u9020\u51fd\u6570\u65b9\u6cd5,\u8fd4\u56de\u7684\u662f\u6570\u7ec4\n      \u6570\u7ec4\u7684 keys...\u7b49\u65b9\u6cd5\u662f\u5b9e\u4f8b\u65b9\u6cd5,\u8fd4\u56de\u7684\u662f\u6570\u7ec4\u7684\u904d\u5386\u5bf9\u8c61 Iterator*\/\n      console.log([1,2].keys());\n      console.log([1,2].values());\n      console.log([1,2].entries());\n      \/\/3.\u4f7f\u7528 for..of \u5faa\u73af\u904d\u5386\u5bf9\u8c61\n      for(const key of Object.keys(person)){\n          console.log(key);\/\/name age\n      }\n      for(const value of Object.values(person)){\n          console.log(value);\n      }\n      for(const entries of Object.entries(person)){\n          console.log(entries);\/\/(2) [&#039;name&#039;, &#039;Alex&#039;] [&#039;age&#039;, 18]\n      }\n      for (const [key, value] of Object.entries(person)) {\n        console.log(key, value); \/\/(2) name Alex age 18\n      }\n      \/\/Object.keys()\/values()\/entries() \u5e76\u4e0d\u80fd\u4fdd\u8bc1\u987a\u5e8f\u4e00\u5b9a\u662f\u4f60\u770b\u5230\u7684\u6837\u5b50,\u8fd9\u4e00\u70b9\u548c for in \u662f\u4e00\u6837\u7684<\/code><\/pre>\n<h2>\u603b\u7ed3<\/h2>\n<p><img data-original=\"http:\/\/blog.odjbinail.cn\/wp-content\/uploads\/2022\/01\/2022012320332175.png\"  alt=\"\" \/><\/p>\n<noscript><img decoding=\"async\" src=\"http:\/\/blog.odjbinail.cn\/wp-content\/uploads\/2022\/01\/2022012320332175.png\" alt=\"\" \/><\/p><\/noscript>\n<p><img data-original=\"http:\/\/blog.odjbinail.cn\/wp-content\/uploads\/2022\/01\/2022012320335270.png\"  alt=\"\" \/><\/p>\n<noscript><img decoding=\"async\" src=\"http:\/\/blog.odjbinail.cn\/wp-content\/uploads\/2022\/01\/2022012320335270.png\" alt=\"\" \/><\/p><\/noscript>\n<p><img data-original=\"http:\/\/blog.odjbinail.cn\/wp-content\/uploads\/2022\/01\/2022012320352611.png\"  alt=\"\" \/><\/p>\n<noscript><img decoding=\"async\" src=\"http:\/\/blog.odjbinail.cn\/wp-content\/uploads\/2022\/01\/2022012320352611.png\" alt=\"\" \/><\/p><\/noscript>\n<p><img data-original=\"https:\/\/blog.odjbinail.cn\/wp-content\/uploads\/2022\/01\/2022081914395177.png\"  alt=\"\" \/><\/p>\n<noscript><img decoding=\"async\" src=\"https:\/\/blog.odjbinail.cn\/wp-content\/uploads\/2022\/01\/2022081914395177.png\" alt=\"\" \/><\/p><\/noscript>\n<p><img data-original=\"http:\/\/blog.odjbinail.cn\/wp-content\/uploads\/2022\/01\/2022012320383352.png\"  alt=\"\" \/><\/p>\n<noscript><img decoding=\"async\" src=\"http:\/\/blog.odjbinail.cn\/wp-content\/uploads\/2022\/01\/2022012320383352.png\" alt=\"\" \/><\/p><\/noscript>\n<p><img data-original=\"https:\/\/blog.odjbinail.cn\/wp-content\/uploads\/2022\/01\/2022081914423315.png\"  alt=\"\" \/><\/p>\n<noscript><img decoding=\"async\" src=\"https:\/\/blog.odjbinail.cn\/wp-content\/uploads\/2022\/01\/2022081914423315.png\" alt=\"\" \/><\/p><\/noscript>\n","protected":false},"excerpt":{"rendered":"<p>\u5269\u4f59\u53c2\u6570\u4e0e\u5c55\u5f00\u8fd0\u7b97\u7b26 \u5269\u4f59\u53c2\u6570\u662f\u4ec0\u4e48 \/\/1.\u5269\u4f59\u53c2\u6570 \/\/const add=(x,y,z,&#8230;args) [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[],"class_list":["post-2599","post","type-post","status-publish","format-standard","hentry","category-web"],"_links":{"self":[{"href":"https:\/\/blog.odjbinail.cn\/index.php?rest_route=\/wp\/v2\/posts\/2599","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.odjbinail.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.odjbinail.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.odjbinail.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.odjbinail.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2599"}],"version-history":[{"count":59,"href":"https:\/\/blog.odjbinail.cn\/index.php?rest_route=\/wp\/v2\/posts\/2599\/revisions"}],"predecessor-version":[{"id":4160,"href":"https:\/\/blog.odjbinail.cn\/index.php?rest_route=\/wp\/v2\/posts\/2599\/revisions\/4160"}],"wp:attachment":[{"href":"https:\/\/blog.odjbinail.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2599"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.odjbinail.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2599"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.odjbinail.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2599"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}