午夜勾魂曲-午夜福利自怕-午夜福利在线观看6080-午夜福利院电影-国产精品毛片AV久久97-国产精品麻豆高潮刺激A片

10 個超有用的 JavaScript 技巧

2020-5-6    seo達人

方法參數(shù)的驗證

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


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。后兩個是可選參數(shù)。這就是為什么我們以前沒有注意過它們。要對 json 進行縮進,必須使用 space 參數(shù)。


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

>>>

{

"name": "John",

"Age": 23

}

從數(shù)組中獲取唯一值

要從數(shù)組中獲取唯一值,我們需要使用 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]

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

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


undefined

null

NaN

0

"" (空字符串)

false

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


myArray.filter(Boolean);

如果要對數(shù)組進行一些修改,然后過濾新數(shù)組,可以嘗試這樣的操作。請記住,原始的 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 中也稱為展開運算符。你可以在這里學習更多用法。


對數(shù)字數(shù)組進行排序

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


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

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

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


Disable Right Click

禁用右鍵

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


<body oncontextmenu="return false">

   <div></div>

</body>

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


使用別名進行解構

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


const object = { number: 10 };


// Grabbing number

const { number } = object;


// Grabbing number and renaming it as otherNumber

const { number: otherNumber } = object;

console.log(otherNumber); //10

獲取數(shù)組中的最后一項

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


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 拒絕時,該方法將引發(fā)錯誤。這意味著你的代碼不會等到你所有的 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.gerard.com.cn

存檔

主站蜘蛛池模板: 亚洲国产精麻豆 | 亚洲国产精品免费线观看视频 | 共妻肉多荤文高h一女n男 | 樱花动漫成人隐藏入口 | 成人欧美尽粗二区三区AV | 99热这里只有精品视频2 | 国产精品卡1卡2卡三卡四 | 曰本aaaaa毛片午夜网站 | www.av色| 久久性色AV亚洲电影无码 | 国产亚洲视频在线 | 8x华人免费视频 | 97在线精品视频免费 | 精品久久久久中文字幕加勒比东京热 | 日韩人妻无码专区一本二本 | 野花4在线观看 | 精品国产自在天天线2019 | 国产国产成人人免费影院 | 玖玖爱在线播放 | 在线精品视频成人网 | 折磨比基尼美女挠肚子 | 一本大道香蕉中文在线视频观看 | 久久久无码AV精品亚洲A片软件 | 亚洲日韩乱码人人爽人人澡人 | 久啪久久全部视频在线 | 国产一区日韩二区欧美三区 | 精品一区二区三区高清免费观看 | 亚洲中文字幕永久在线全国 | 韩国伦理片2018在线播放免费观看 | 久久久免费观成人影院 | 中文字幕亚洲无线码一区 | 无限资源在线观看完整版免费下载 | 久久囯产精品777蜜桃传媒 | 女人会操出水图 | 久久久久久久久女黄9999 | 欧美精品一区二区蜜臀亚洲 | 久草在线在线精品观看 | 久久黄视频 | 超碰免费视频caoporn | 精品免费视在线视频观看 | 免费人妻无码AV不卡在线 |