1. 程式人生 > 程式設計 >9個JavaScript日常開發小技巧

9個JavaScript日常開發小技巧

1.生成指定範圍的數字

在某些情況下,我們會建立一個處在兩個數之間的陣列。假設我們要判斷某人的生日是否在某個範圍的年份內,那麼下面是實現它的一個很簡單的方法

let start = 1900,end = 2000;
[...new Array(end + 1).keys()].slice(start);
// [ 1900,1901,...,2000]
// 還有這種方式,但對於很的範圍就不太穩定

Array.from({ length: end - start + 1 },(_,i) => start + i);

2.使用值陣列作為函式的引數

在某些情況下,我們需要將值收集到陣列中,然後將其作為函式的引數傳遞。 使用 ES6,可以使用擴充套件運算子(...)並從[arg1,arg2] > (arg1,arg2)中提取陣列:

const parts = {
 first: [0,2],second: [1,3],}

["Hello","World","JS","Tricks"].slice(...parts.second)
// ["World","JS"]

3.將值用作 Math 方法的引數

當我們需要在陣列中使用Math.max或Math.min來找到最大或者最小值時,我們可以像下面這樣進行操作:

const elementsHeight = [...document.body.children].map(
 el => el.getBoundingClientRect().y
);
Math.max(...elementsHeight);
// 474

const numbers = [100,100,-1000,2000,-3000,40000];
Math.min(...numbers);
// -3000

4.合併/展平陣列中的陣列

Array 有一個很好的方法,稱為Array.flat,它是需要一個depth引數,表示陣列巢狀的深度,預設值為1。 但是,如果我們不知道深度怎麼辦,則需要將其全部展平,只需將Infinity作為引數即可 😎

const arrays = [[10],50,[100,[2000,3000,[40000]]]]

arrays.flat(Infinity)
// [ 10,40000 ]

5. 防止程式碼崩潰

在程式碼中出現不可預測的行為是不好的,但是如果你有這種行為,你需要處理它。

例如,常見錯誤TypeError,試獲取undefined/null等屬性,就會報這個錯誤。

const found = [{ name: "Alex" }].find(i => i.name === 'Jim')

console.log(found.name)
// TypeError: Cannot read property 'name' of undefined

我們可以這樣避免它:

const found = [{ name: "Alex" }].find(i => i.name === 'Jim') || {}

console.log(found.name)
// undefined

6. 傳遞引數的好方法

對於這個方法,一個很好的用例就是styled-components,在ES6中,我們可以將模板字元中作為函式的引數傳遞而無需使用方括號。 如果要實現格式化/轉換文字的功能,這是一個很好的技巧:

const makeList = (raw) =>
 raw
  .join()
  .trim()
  .split("\n")
  .map((s,i) => `${i + 1}. ${s}`)
  .join("\n");

makeList`
Hello,World
Hello,World
`;
// 1. Hello,World
// 2. World,World

7.交換變數

使用解構賦值語法,我們可以輕鬆地交換變數 使用解構賦值語法 😬:

let a = "hello"
let b = "world"

// 錯誤的方式
a = b
b = a
// { a: 'world',b: 'world' }

// 正確的做法
[a,b] = [b,a]
// { a: 'world',b: 'hello' }

8.按字母順序排序

需要在跨國際的專案中,對於按字典排序,一些比較特殊的語言可能會出現問題,如下所示 😨

// 錯誤的做法
["a","z","ä"].sort((a,b) => a - b);
// ['a','z','ä']

// 正確的做法
["a",b) => a.localeCompare(b));
// [ 'a','ä','z' ]

 localeCompare() :用本地特定的順序來比較兩個字串。

9.隱藏隱私

最後一個技巧是遮蔽字串,當你需要遮蔽任何變數時(不是密碼),下面這種做法可以快速幫你做到:

const password = "hackme";
password.substr(-3).padStart(password.length,"*");
// ***kme

掌握這些小技巧,在日常開發過程中可以避免很多不必要的錯誤,更多關於JavaScript日常開發小技巧請檢視下面的相關連結