<em id="09ttv"></em>
    <sup id="09ttv"><pre id="09ttv"></pre></sup>
    <dd id="09ttv"></dd>

        • 10 個超有用的 JavaScript 技巧

          2020-5-6    seo達人

          方法參數的驗證

          JavaScript 允許你設置參數的默認值。通過這種方法,可以通過一個巧妙的技巧來驗證你的方法參數。


          const isRequired = () => { throw new Error('param is required'); };

          const print = (num = isRequired()) => { console.log(`printing ${num}`) };

          print(2);//printing 2

          print()// error

          print(null)//printing null

          非常整潔,不是嗎?


          格式化 json 代碼

          你可能對 JSON.stringify 非常熟悉。但是你是否知道可以用 stringify 進行格式化輸出?實際上這很簡單。


          stringify 方法需要三個輸入。 value,replacer 和 space。后兩個是可選參數。這就是為什么我們以前沒有注意過它們。要對 json 進行縮進,必須使用 space 參數。


          console.log(JSON.stringify({name:"John",Age:23},null,'\t'));

          >>>

          {

          "name": "John",

          "Age": 23

          }

          從數組中獲取唯一值

          要從數組中獲取唯一值,我們需要使用 filter 方法來過濾出重復值。但是有了新的 Set 對象,事情就變得非常順利和容易了。


          let uniqueArray = [...new Set([1, 2, 3, 3, 3, "school", "school", 'ball', false, false, true, true])];

          >>> [1, 2, 3, "school", "ball", false, true]

          從數組中刪除虛值(Falsy Value)

          在某些情況下,你可能想從數組中刪除虛值。虛值是 JavaScript 的 Boolean 上下文中被認定為為 false 的值。 JavaScript 中只有六個虛值,它們是:


          undefined

          null

          NaN

          0

          "" (空字符串)

          false

          濾除這些虛值的最簡單方法是使用以下函數。


          myArray.filter(Boolean);

          如果要對數組進行一些修改,然后過濾新數組,可以嘗試這樣的操作。請記住,原始的 myArray 會保持不變。


          myArray

             .map(item => {

                 // Do your changes and return the new item

             })

             .filter(Boolean);

          合并多個對象

          假設我有幾個需要合并的對象,那么這是我的首選方法。


          const user = {

              name: 'John Ludwig',

              gender: 'Male'

          };

          const college = {

              primary: 'Mani Primary School',

              secondary: 'Lass Secondary School'

          };

          const skills = {

             programming: 'Extreme',

             swimming: 'Average',

             sleeping: 'Pro'

          };

          const summary = {...user, ...college, ...skills};

          這三個點在 JavaScript 中也稱為展開運算符。你可以在這里學習更多用法。


          對數字數組進行排序

          JavaScript 數組有內置的 sort 方法。默認情況下 sort 方法把數組元素轉換為字符串,并對其進行字典排序。在對數字數組進行排序時,這有可能會導致一些問題。所以下面是解決這類問題的簡單解決方案。


          [0,10,4,9,123,54,1].sort((a,b) => a-b);

          >>> [0, 1, 4, 9, 10, 54, 123]

          這里提供了一個將數字數組中的兩個元素與 sort 方法進行比較的函數。這個函數可幫助我們接收正確的輸出。


          Disable Right Click

          禁用右鍵

          你可能想要阻止用戶在你的網頁上單擊鼠標右鍵。


          <body oncontextmenu="return false">

             <div></div>

          </body>

          這段簡單的代碼將為你的用戶禁用右鍵單擊。


          使用別名進行解構

          解構賦值語法是一種 JavaScript 表達式,可以將數組中的值或對象的值或屬性分配給變量。解構賦值能讓我們用更簡短的語法進行多個變量的賦值。


          const object = { number: 10 };


          // Grabbing number

          const { number } = object;


          // Grabbing number and renaming it as otherNumber

          const { number: otherNumber } = object;

          console.log(otherNumber); //10

          獲取數組中的最后一項

          可以通過對 splice 方法的參數傳入負整數,來數獲取組末尾的元素。


          let array = [0, 1, 2, 3, 4, 5, 6, 7]

          console.log(array.slice(-1));

          >>>[7]

          console.log(array.slice(-2));

          >>>[6, 7]

          console.log(array.slice(-3));

          >>>[5, 6, 7]

          等待 Promise 完成

          在某些情況下,你可能會需要等待多個 promise 結束。可以用 Promise.all 來并行運行我們的 promise。


          const PromiseArray = [

             Promise.resolve(100),

             Promise.reject(null),

             Promise.resolve("Data release"),

             Promise.reject(new Error('Something went wrong'))];


          Promise.all(PromiseArray)

           .then(data => console.log('all resolved! here are the resolve values:', data))

           .catch(err => console.log('got rejected! reason:', err))

          關于 Promise.all 的主要注意事項是,當一個 Promise 拒絕時,該方法將引發錯誤。這意味著你的代碼不會等到你所有的 promise 都完成。


          如果你想等到所有 promise 都完成后,無論它們被拒絕還是被解決,都可以使用 Promise.allSettled。此方法在 ES2020 的最終版本得到支持。


          const PromiseArray = [

             Promise.resolve(100),

             Promise.reject(null),

             Promise.resolve("Data release"),

             Promise.reject(new Error('Something went wrong'))];


          Promise.allSettled(PromiseArray).then(res =>{

          console.log(res);

          }).catch(err => console.log(err));


          //[

          //{status: "fulfilled", value: 100},

          //{status: "rejected", reason: null},

          //{status: "fulfilled", value: "Data release"},

          //{status: "rejected", reason: Error: Something went wrong ...}

          //]

          即使某些 promise 被拒絕,Promise.allSettled 也會從你所有的 promise 中返回結果。

          日歷

          鏈接

          個人資料

          藍藍設計的小編 http://m.sdgs6788.com

          存檔

          久久久精品久久久久特色影视| 久久久久久亚洲AV无码专区| 久久人人爽人人爽人人AV东京热 | 亚洲精品综合久久| 思思久久好好热精品国产| 久久精品国产只有精品66| 亚洲AV伊人久久青青草原| 久久精品国产亚洲AV电影| 日本精品久久久久中文字幕8| 久久久久亚洲爆乳少妇无| 久久精品一本到99热免费| 丰满少妇人妻久久久久久| 无码任你躁久久久久久| 久久亚洲精精品中文字幕| 久久精品免费大片国产大片| 久久精品国产亚洲AV大全| 亚洲精品国产自在久久| 久久午夜电影网| 无遮挡粉嫩小泬久久久久久久| 久久久人妻精品无码一区 | 久久久久久精品免费看SSS| 久久国产精品久久| 99精品伊人久久久大香线蕉| 精品久久久久久久无码 | 人人狠狠综合久久88成人| 色综合久久中文字幕综合网| 精品久久久久久中文字幕| 中文精品久久久久人妻不卡| 女人高潮久久久叫人喷水| 精品久久久久久久久久中文字幕 | 国内精品久久久久影院日本| 中文字幕亚洲综合久久菠萝蜜| 久久午夜电影网| 91麻豆精品国产91久久久久久| 亚洲午夜无码久久久久| 久久精品中文字幕一区| 久久中文字幕人妻丝袜| 亚洲人成伊人成综合网久久久| 尹人香蕉久久99天天拍| 久久婷婷午色综合夜啪| 精品综合久久久久久97|