天天看點

分享 10 個常用的 JS 小技巧

作者:不秃頭程式員
分享 10 個常用的 JS 小技巧

JavaScript 是 Web 開發的動力源泉,是一種多功能語言,使開發人員能夠建立互動式動态 Web 應用程式。

無論您是初學者還是經驗豐富的開發人員,掌握 JavaScript 都需要深入研究其無數功能并學習可以顯着增強您的編碼能力的巧妙技巧。

在今天這篇文章中,我們将探讨每個程式員都應該知道的 10 個巧妙的 JavaScript 技巧。

1. 解構指派

解構指派允許您從數組或對象中提取值,并以簡潔易讀的方式将它們配置設定給變量。例如:

const person = { name: 'John', age: 30 };
const { name, age } = person;
console.log(name, age); // Output: John 30           

2. 擴充文法

擴充文法 (…) 允許您将可疊代對象(例如數組或字元串)擴充為單個元素。它可以友善地連接配接數組、傳遞函數參數和克隆對象。

const arr1 = [1, 2, 3];
const arr2 = [...arr1, 4, 5];
console.log(arr2); // Output: [1, 2, 3, 4, 5]           

3. 箭頭函數

箭頭函數為編寫匿名函數提供了簡潔的文法,對于回調函數和簡化代碼特别有用。

const add = (a, b) => a + b;
console.log(add(2, 3)); // Output: 5           

4. 模闆文字

模闆文字允許輕松的字元串插值和多行字元串,使代碼更具可讀性和可維護性。

const name = 'Alice';
const greeting = `Hello, ${name}!
Welcome to our website.`;
console.log(greeting);           

5. 可選連結

可選連結 (?.) 允許您安全地通路對象的嵌套屬性,而不必擔心 null 或未定義的值,進而減少了詳細的 null 檢查的需要。

const user = {
  name: 'Bob',
  address: {
    city: 'New York'
  }
};
console.log(user.address?.city); // Output: New York           

6. 空值合并運算符

空值合并運算符 (??) 提供了一種處理 null 或未定義值的預設值的便捷方法,避免使用 0 或空字元串等虛假值出現意外行為。

const defaultValue = 'Hello';
const userInput = null;
const result = userInput ?? defaultValue;
console.log(result); // Output: Hello           

7. 數組方法:map、filter、reduce

這些數組方法是以函數式程式設計風格操作數組的強大工具,可實作簡潔且富有表現力的代碼。

const numbers = [1, 2, 3, 4, 5];
const doubled = numbers.map(num => num * 2);
const even = numbers.filter(num => num % 2 === 0);
const sum = numbers.reduce((acc, curr) => acc + curr, 0);
console.log(doubled, even, sum); // Output: [2, 4, 6, 8, 10] [2, 4] 15           

8. Promise 和 Async/Await

Promise 和 async/await 為處理異步代碼、提高可讀性和可維護性提供了優雅的解決方案。

function fetchData() {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve('Data fetched');
    }, 2000);
  });
}


async function fetchDataAsync() {
  const data = await fetchData();
  console.log(data); // Output: Data fetched
}


fetchDataAsync();           

9. Object.assign() 用于對象合并

Object.assign() 允許您将多個對象合并為一個,提供了一種組合對象屬性的便捷方法。

const obj1 = { a: 1 };
const obj2 = { b: 2 };
const merged = Object.assign({}, obj1, obj2);
console.log(merged); // Output: { a: 1, b: 2 }           

10. 用于性能優化的記憶

記憶化是一種用于緩存昂貴函數調用結果的技術,通過避免備援計算來提高性能。

function memoize(fn) {
  const cache = {};
  return function(...args) {
    const key = JSON.stringify(args);
    if (!cache[key]) {
      cache[key] = fn(...args);
    }
    return cache[key];
  };
}


const factorial = memoize(n => {
  if (n === 0 || n === 1) return 1;
  return n * factorial(n - 1);
});


console.log(factorial(5)); // Output: 120           

掌握 JavaScript 不僅需要了解其核心概念,還需要利用巧妙的技巧和技術來編寫高效、優雅的代碼。

通過将這 10 個巧妙的技巧融入您的 JavaScript 技能庫中,您将有能力應對複雜的挑戰并充滿信心地建構強大的 Web 應用程式。

最後,感謝您的閱讀,祝程式設計快樂!