人妻夜夜爽天天爽三区丁香花-人妻夜夜爽天天爽三-人妻夜夜爽天天爽欧美色院-人妻夜夜爽天天爽免费视频-人妻夜夜爽天天爽-人妻夜夜爽天天

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

20個(gè)js實(shí)用技巧,讓你代碼更簡(jiǎn)潔高效

liguoquan
2025年1月21日 16:2 本文熱度 586
:20個(gè)js實(shí)用技巧,讓你代碼更簡(jiǎn)潔高效


20 個(gè) js 實(shí)用技巧,讓你代碼更簡(jiǎn)潔高效

?

1. 解構(gòu)賦值與重命名

在解構(gòu)對(duì)象時(shí),可以直接重命名變量,避免命名沖突。

arduino
代碼解讀
復(fù)制代碼
const user = { name: 'yun', age: 25 }; const { name: userName, age: userAge } = user; console.log(userName); // yun console.log(userAge);  // 25

應(yīng)用場(chǎng)景:從 API 返回的數(shù)據(jù)中提取字段時(shí),字段名與現(xiàn)有變量沖突。

2. 快速移除數(shù)組中的假值

filter(Boolean) 是清理數(shù)組中無(wú)效值的利器。

ini
代碼解讀
復(fù)制代碼
const arr = [0, 'hello', null, 42, false, 'world']; const filtered = arr.filter(Boolean); console.log(filtered); // ["hello", 42, "world"]

應(yīng)用場(chǎng)景:清理用戶輸入或 API 返回的數(shù)組。

3. 數(shù)組去重

使用 Set 快速去重。

ini
代碼解讀
復(fù)制代碼
const arr = [1, 2, 2, 3, 3, 4]; const unique = [...new Set(arr)]; console.log(unique); // [1, 2, 3, 4]

應(yīng)用場(chǎng)景:處理重復(fù)數(shù)據(jù)時(shí)。

4. 按屬性對(duì)對(duì)象數(shù)組排序

使用 sort() 方法輕松實(shí)現(xiàn)對(duì)象數(shù)組排序。

css
代碼解讀
復(fù)制代碼
const users = [  { name: 'yun', age: 25 },  { name: 'mu', age: 20 }]; users.sort((a, b) => a.age - b.age); console.log(users); // [{ name: 'yun', age: 20 }, { name: 'mu', age: 25 }]

應(yīng)用場(chǎng)景:對(duì)用戶列表、商品列表等數(shù)據(jù)排序。

5. 數(shù)組扁平化

使用 Array.flat(Infinity) 展平多層嵌套數(shù)組。

ini
代碼解讀
復(fù)制代碼
const nested = [1, [2, [3, [4]]]]; console.log(nested.flat(Infinity)); // [1, 2, 3, 4]

應(yīng)用場(chǎng)景:處理嵌套 JSON 數(shù)據(jù)或數(shù)組。

6. 快速獲取數(shù)組最后一項(xiàng)

使用 arr.at(-1) 獲取數(shù)組最后一項(xiàng)。

ini
代碼解讀
復(fù)制代碼
const arr = [1, 2, 3, 4]; console.log(arr.at(-1)); // 4

應(yīng)用場(chǎng)景:處理?xiàng);蜿?duì)列時(shí)。

7. 生成連續(xù)數(shù)字?jǐn)?shù)組

使用 Array 和 keys() 快速生成連續(xù)數(shù)字?jǐn)?shù)組。

ini
代碼解讀
復(fù)制代碼
const numbers = [...Array(5).keys()]; console.log(numbers); // [0, 1, 2, 3, 4]

應(yīng)用場(chǎng)景:生成索引或序列。

8. 合并對(duì)象

使用擴(kuò)展運(yùn)算符合并對(duì)象。

ini
代碼解讀
復(fù)制代碼
const obj1 = { a: 1 }; const obj2 = { b: 2 }; const merged = { ...obj1, ...obj2 }; console.log(merged); // { a: 1, b: 2 }

應(yīng)用場(chǎng)景:合并配置或狀態(tài)對(duì)象。

9. 快速刪除對(duì)象屬性

通過(guò)解構(gòu)賦值刪除對(duì)象中的某些屬性。

yaml
代碼解讀
復(fù)制代碼
const { unwanted, ...rest } = { unwanted: 0, a: 1, b: 2 }; console.log(rest); // { a: 1, b: 2 }

應(yīng)用場(chǎng)景:清理對(duì)象中的無(wú)用字段。

10. 首字母大寫

快速將字符串首字母大寫。

python
代碼解讀
復(fù)制代碼
const capitalize = str => str.charAt(0).toUpperCase() + str.slice(1); console.log(capitalize('hello')); // 'Hello'

應(yīng)用場(chǎng)景:格式化用戶輸入或顯示內(nèi)容。

11. 記憶化函數(shù)

緩存函數(shù)結(jié)果,避免重復(fù)計(jì)算。

ini
代碼解讀
復(fù)制代碼
const memoize = (fn) => {  const cache = {};  return (...args) => {    const key = JSON.stringify(args);    if (!cache[key]) {      cache[key] = fn(...args);    }    return cache[key];  }; }; const slowSquare = (n) => n * n; const memoizedSquare = memoize(slowSquare); console.log(memoizedSquare(4)); // 16 console.log(memoizedSquare(4)); // 16 (從緩存中獲取)

應(yīng)用場(chǎng)景:優(yōu)化計(jì)算密集型函數(shù)。

12. 防抖函數(shù)

限制高頻觸發(fā)的函數(shù)調(diào)用。

javascript
代碼解讀
復(fù)制代碼
function debounce(fn, delay) {  let timer;  return function(...args) {    clearTimeout(timer);    timer = setTimeout(() => fn.apply(this, args), delay);  }; }

應(yīng)用場(chǎng)景:搜索框輸入、窗口調(diào)整大小事件。

13. 節(jié)流函數(shù)

控制函數(shù)調(diào)用頻率。

ini
代碼解讀
復(fù)制代碼
function throttle(fn, delay) {  let last = 0;  return function(...args) {    const now = Date.now();    if (now - last >= delay) {      fn.apply(this, args);      last = now;    }  }; }

應(yīng)用場(chǎng)景:滾動(dòng)事件、鼠標(biāo)移動(dòng)事件。

14. 安全訪問(wèn)嵌套屬性

使用可選鏈操作符安全訪問(wèn)嵌套屬性。

sql
代碼解讀
復(fù)制代碼
const user = { address: { street: 'Main St' } }; console.log(user?.address?.street); // 'Main St' console.log(user?.contact?.phone); // undefined

應(yīng)用場(chǎng)景:避免訪問(wèn)未定義屬性時(shí)報(bào)錯(cuò)。

15. 空值合并運(yùn)算符

為變量提供默認(rèn)值。

ini
代碼解讀
復(fù)制代碼
const value = null ?? 'default'; console.log(value); // 'default'

應(yīng)用場(chǎng)景:處理空值或未定義值。

16. 格式化日期

使用 Intl.DateTimeFormat 格式化日期。

javascript
代碼解讀
復(fù)制代碼
const date = new Date(); const formatted = new Intl.DateTimeFormat('zh-CN', {  dateStyle: 'full', }).format(date); console.log(formatted); // 2024年11月24日星期日

應(yīng)用場(chǎng)景:國(guó)際化項(xiàng)目中顯示用戶友好的日期格式。

17. 生成隨機(jī)顏色

快速生成隨機(jī)顏色。

javascript
代碼解讀
復(fù)制代碼
const randomColor = () => `#${Math.floor(Math.random() * 16777215).toString(16)}`; console.log(randomColor()); // '#a3e12f'

應(yīng)用場(chǎng)景:動(dòng)態(tài)生成顏色主題。

18. Promise 超時(shí)處理

為異步操作設(shè)置超時(shí)時(shí)間。

javascript
代碼解讀
復(fù)制代碼
const timeout = (promise, ms) => {  return Promise.race([    promise,    new Promise((_, reject) => setTimeout(() => reject('timeout'), ms))  ]); };

應(yīng)用場(chǎng)景:網(wǎng)絡(luò)請(qǐng)求超時(shí)處理。

19. localStorage 封裝

封裝 localStorage,簡(jiǎn)化數(shù)據(jù)存儲(chǔ)。

javascript
代碼解讀
復(fù)制代碼
const storage = {  set: (key, value) => localStorage.setItem(key, JSON.stringify(value)),  get: (key) => JSON.parse(localStorage.getItem(key)), }; storage.set('user', { name: 'Yun' }); console.log(storage.get('user')); // { name: 'Yun' }

應(yīng)用場(chǎng)景:本地存儲(chǔ)用戶數(shù)據(jù)。

20. 優(yōu)雅的 console.log

為日志添加時(shí)間戳和樣式。

javascript
代碼解讀
復(fù)制代碼
const log = (...args) => console.log(`%c[${new Date().toLocaleTimeString()}]`, 'color: #bada55', ...args); log('Hello, world!'); // [12:34:56] Hello, world!

應(yīng)用場(chǎng)景:調(diào)試時(shí)更清晰地查看日志。


該文章在 2025/1/21 16:02:26 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 亚洲狼人伊人中文字幕 | 亚洲人视频免费在线观看 | 人妻被粗大猛进猛出69国产 | 成片一二三区在线观看黄色一级片 | 国产精品伦理久久久久久 | 久久久久无码国产精品不卡 | 人妻无码在线视频观看 | 国产午夜婷婷精品无码A片 国产午夜小视频 | 99久久66久久精品国产片 | 日韩欧美国产精品第一页不卡 | 午夜一区二区免费视频 | 啪啪啪邪恶动态图 | 国产毛片精品久久完整版 | 精品色拍自偷亚洲 | 中无码人妻丰满熟妇啪啪 | 亚洲人成网站在线播放影院在线 | 毛片无码一区二区三区a片视频 | 91熟女视频 | 国产成人精品日本亚洲18图 | 愉拍自拍另类天堂 | 深夜性久久 | 亚洲丰满爆乳熟女在线观看 | 中文字幕精品久久久久人妻红杏1 | 国产网红美女人体在线 | 免费又粗又硬进去好爽A片 免费又粗又硬进去好爽A片视频 | 色哟哟免费视频播放网站 | 久艳妇荡女欲乱 | 国产卡一卡2卡3精品推荐 | 久久精品视频9 | 永久免费看mv网站入口 | heyzo高无码国产精品 | 欧美日韩色视频 | 久久久久精品亚洲 | 久久久久人妻一区二区三区vr | 波多野结衣强奷系列hd高 | 日韩一区二区三区无码影院 | 亚洲欧洲自拍偷线一区二区 | 久久国产高清 | 国产精品三级av及在线观看 | 欧美亚洲精品一区二三区8V | 永久免费看A片无码精品 |