<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [toc] ## 數組的擴展 ### Array.from() Array.from()將類數組括可迭代對象(包括set和map)轉為真正的數組 ``` let arrayLike={ "0":"a", "1":"b", "2":"c", length:3 } ES5: var arr1 = [].slice.call(arrayLike); //["a","b","c"] ES6: var arr2 = Array.from(arrayLike); //["a","b","c"] ``` Array.from()還接受第二個參數,第二個參數是一個方法,類似map一樣對每個元素進行處理: ``` Array.from([1,2,3],x=>x*x); //[1,4,9] ``` ### Array.of() Array.of()用于將一組值轉換為數組 ``` Array.of(3,11,8); //[3,11,8] ``` ### 數組實例的copyWithin() copyWithin()方法用以將指定位置的成員負值到其他位置,覆蓋目標位置的值,會修改原數組 Array.prototype.copyWithin(target,source=0,end=this.length): - target,必須,目標位置 - start,可選,從該位置開始讀取 - end,可選,到當前位置結束,默認等于數組的長度 ``` [1,2,3,4,5].copyWithin(0,3); //原數組變為[4,2,3,4,5] ``` ### 數組實例的find()和findIndex() - find()方法用來找出第一個符合條件的數組成員 - findIndex()用來找出第一個符合條件的成員索引 ``` [1,5,10,15].find(function(value,index,arr){ return value>9; }); //10 [1,5,10,15].findIndex(function(value,index,arr){ return value>9; }); //2 ``` ### 數組實例的fill() 使用給定的值填充數組,初始化數組時很方便 ``` ["a","b","c"].fill(7); //[7,7,7] new Array(3).fill(0); //[0,0,0] ``` ### 數組實例的entries(),keys()和values() 都用于遍歷數組,都返回一個遍歷器對象。可以使用for...of循環 ``` for(let index of ["a","b"].keys(){ console.log(index); }) //0,1 for(let values of ["a","b"].values(){ console.log(values) }) //"a","b" for(let [index,value] of ["a","b"].entries(){ console.log(index+" "+value); }) //"0 a","1 b" ``` ### 數組實例的includes()方法 是否包含某個值,可以指定第二個參數用以表示開始搜索的位置 ## 對象的擴展 ### 屬性的簡潔表達 ``` var foo = "bar"; var baz = {foo}; //baz:{foo:"bar"} function f(x,y){ return {x,y} } 等價于: function f(x,y){ retrn {x:x,y:y} } var o = { method(){ return "hello" } } 等價于: var o = { method function(){ reutrn "hello" } } ``` CommonJS規范的簡寫: ``` var ms{}; function f1(key){ return key in ms?ms[key]:null } function f2(key,value){ ms[key] = value } function f3(){ ms = {}; } modules.exports = {f1,f2,f3} 等價于: modules.exports = { f1:f1, f2:f2, f3:f3 } ``` ### 屬性名表達式 ES6允許將表達式作為屬性名: ``` let propKey = "foo"; let obj={ [propKey]:"true", ["a"+"bc"]:123 } //obj:{foo:true,"abc":123} ``` ### 方法的name屬性 函數的name屬性返回函數名 ``` var p ={ sayHi:function(){ console.log("hi"); } } p.sayHi.name; //sayHi ``` ### Object.is() 用來比較兩個值是否嚴格相等,與嚴格比較符(===)基本一致 ### Object.assign() Object.assign(target,source1,source2,...)將源對象的所有可枚舉屬性復制到目標對象 如果源對象與目標對象有相同的屬性,或者多個源對象有相同的屬性,則后面的覆蓋前面的。 對于嵌套的對象,Object.assign會直接替換: ``` var target = { a:{ b:"c", d:"e" } } var source = { a:{ b:"hello" } } Object.assign(target,source); //{a:{b:"hello"}} ``` Object.assign方法可以用來為對象添加屬性和方法,也可以用來克隆對象和合并多個對象 ### 屬性的可枚舉性 每個屬性都有一個屬性描述符(Descriptor)用以控制該屬性的行為,可以使用Object.getOwnPropertyDescriptor()來獲取對象的描述。 ES5中有以下3個方法會忽略enumerable為false的屬性: - for...in - Object.keys() - JSON.stringify() ES6新增了兩個操作,也會忽略enumerable為false的屬性: - Object.assign() - Reflect.enumerable():返回所有for...in會遍歷到的屬性 ### 屬性的遍歷 ES6有6種方法可以遍歷屬性: - for...in - Object.keys(obj) - Object.getOwnPropertyNames(obj) - Object.getOwnPropertySymbols(obj) - Reflect.ownKeys(obj) - Reflect.enumerable(obj) ### __proto__屬性,Object.setPropertyOf(),Object.getPrototypeOf() __proto__屬性用來讀取或設置對象的prototype對象 Object.setPropertyOf()用來設置屬性的prototype對象 Object.getPropertyOf()用來獲取屬性的prototype對象
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看