精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

12 個提升 JavaScript 開發(fā)效率的實用技巧

開發(fā) 前端
如果你已經(jīng)在使用其中的一些技巧,那就鞏固一下吧!需要注意的是為了兼容舊版瀏覽器,記得按需注入墊片(polyfill)。

下面列出了 12 個 JavaScript 小技巧,這些技巧可以幫助你編寫更簡潔、高效的代碼。

如果你已經(jīng)在使用其中的一些技巧,那就鞏固一下吧!需要注意的是為了兼容舊版瀏覽器,記得按需注入墊片(polyfill)。

1. 空值合并運算符(??)

使用 ?? 來賦默認值,當(dāng) ?? 的左側(cè)值為 null 或者 undefined 時,?? 就會使用右側(cè)的默認值。

const placeholder = props.placeholder ?? '請輸入'
console.log(placeholder) // props.placeholder 為 null 或 undefined 時,輸出“請輸入”

?? 對比函數(shù)或解構(gòu)默認值,唯一的區(qū)別在于對 null 的處理,?? 如上在面對 null 時也會使用默認值,而函數(shù)或解構(gòu)默認值則會使用 null。

function foo(text = 'default') {
return text
}

let input1
console.log(input1 ?? 'default', foo(input1))
// 輸出 default default

const input2 = null
console.log(input2 ?? 'default', foo(input2))
// 輸出 default null

const input3 = 'value'
console.log(input3 ?? 'default', foo(input3))
// 輸出 value value

在項目代碼中,也會看到使用邏輯或運算符 || 來賦默認值,|| 運算符在左側(cè)值為 0、空字符串('')、NaN、false、null、undefined 等 falsy 值時,都會使用默認值。

let input1
console.log(input1 ?? 'default', input1 || 'default')
// 輸出 default default

const input2 = false
console.log(input2 ?? 'default', input2 || 'default')
// 輸出 false default

const input3 = 'value'
console.log(input3 ?? 'default', input3 || 'default')
// 輸出 value value

故推薦使用 ?? 來賦默認值,也可以使用函數(shù)或解構(gòu)默認值,不過要注意 null 值,而 || 更適用于 if 等邏輯判斷。

2. 可選鏈操作符(?.)

可選鏈運算符(?.)用于訪問對象的屬性或方法,當(dāng)訪問的對象或方法是 undefined 或 null,表達式會短路并計算為 undefined,而不是拋出錯誤。

const obj = {
  foo: { bar: { a: 3 } }
}
const obj2 = {}

function getA(o) {
  return o && o.foo && o.foo.bar && o.foo.bar.a
}
function getA2(o) {
  return o?.foo?.bar?.a
}

// 用 && 來獲取深層對象
console.log(getA(obj)) // 輸出3
console.log(getA(obj2)) // 輸出 undefined
console.log(getA2(obj)) // 輸出3
console.log(getA2(obj2)) // 輸出 undefined

可以看到使用可選鏈運算符(?.)在獲取對象屬性上使用會更方便。

3. 使用解構(gòu)賦值

解構(gòu)賦值可以快速提取對象或數(shù)組中的值,減少冗余代碼。

// 對象解構(gòu)
const user = { name: 'John', age: 30 };
const { name, age } = user;
console.log(name, age); // John 30

// 數(shù)組解構(gòu)
const numbers = [1, 2, 3];
const [first, second] = numbers;
console.log(first, second); // 1 2

4. 字符串方法

使用 startsWith、endsWith、includes 方法來判斷字符串是否包含某個子串。

'Hello World'.startsWith('Hello') // true
'Hello World'.endsWith('World') // true
'Hello World'.includes('World') // true

相比與 indexOf 方法,startsWith、endsWith、includes 代碼可讀性更高。

const isPython = 'Hello Python'.indexOf('Python') !== -1 // true
const isJS = 'Hello JavaScript'.includes('JavaScript') // true

5. 數(shù)組方法

使用 map、filter、some、every 等方法來操作數(shù)組。

const arr = [
  { name: '小明', age: 16 },
  { name: '張三', age: 18 },
  { name: '李四', age: 20 }
]
const ageArr = arr.map(item => item.age) // [16, 18, 20]
const adults = arr.filter(item => item.age >= 18) // [{ name: '張三', age: 18 }, { name: '李四', age: 20 }]
const hasChild = arr.some(item => item.age < 18) // true
const isAllAdults = arr.every(item => item.age >= 18) // false

相比于使用 for 循環(huán)遍歷數(shù)組來寫業(yè)務(wù)邏輯,map、filter、some、every 等方法讓你編碼更高效,同時可讀性更高。

6. 使用 Set 去重

Set 可以快速去除數(shù)組中的重復(fù)項。

const numbers = [1, 2, 2, 3, 4, 4];
const uniqueNumbers = [...new Set(numbers)];
console.log(uniqueNumbers); // [1, 2, 3, 4]

7. 使用 Array.from 將類數(shù)組轉(zhuǎn)換為數(shù)組

將 NodeList、arguments 等類數(shù)組對象轉(zhuǎn)換為真正的數(shù)組。

const nodeList = document.querySelectorAll('div');
const divArray = Array.from(nodeList);

8. 使用策略模式優(yōu)化 if

在一些場景中,if 分支會比較多,可以使用策略模式優(yōu)化。

// if 判斷
function renderSports = (sports) => {
if (sports === 'basketball') {
    return'籃球'
  } elseif (sports === 'football') {
    return'足球'
  } elseif (sports === 'tennis') {
    return'網(wǎng)球'
  } else {
    return'--'
  }
}

// 策略模式優(yōu)化
function renderSports2 = (sports) => {
  const sportsMap = {
    basketball: '籃球',
    football: '足球',
    tennis: '網(wǎng)球',  
  }
  return sportsMap[sports] || '--'
}

使用策略模式優(yōu)化后,可以少寫一些 if 語句,代碼也更符合設(shè)計模式。

9. 使用快速生成代碼片段

VSCode 中有提供代碼片段插件,這些插件能幫助你高效的寫代碼,當(dāng)然你也可以自己編寫代碼片段。

圖片

10. Chrome DevTools 替換接口內(nèi)容

當(dāng)接口返回的內(nèi)容無法覆蓋頁面所有展示情況時,我們可以使用 Chrome DevTools 的替換內(nèi)容功能來修改接口響應(yīng),從而在不用本地模擬數(shù)據(jù)的情況下完成功能驗證。

圖片

11. 從控制臺復(fù)制長變量

Chrome 控制臺遇到內(nèi)容比較長的變量時,不會直接平鋪展示全部內(nèi)容,比如字符串較長時中間會顯示省略號、數(shù)組較長時會分塊展示等。如果你想復(fù)制這個內(nèi)容,就會比較困難,這時可以使用 Chrome Devtools 的復(fù)制變量功能。

chrome_copy2

12. 使用 classnames 處理類名

使用 classnames 能更高效的處理類名,同時還能使類名邏輯更清晰,便于理解和維護。

// 直接處理類名
let buttonClass = 'btn';
if (isPrimary) {
  buttonClass += ' btn-primary';
}
if (isDisabled) {
  buttonClass += ' btn-disabled';
}

// 使用 classNames 處理類名
const buttonClass = classNames('btn', {
'btn-primary': isPrimary,
'btn-disabled': isDisabled,
})
責(zé)任編輯:武曉燕 來源: 栗子前端
相關(guān)推薦

2024-05-22 09:29:43

2023-07-24 07:11:43

2016-05-10 10:16:13

JavaScript技巧

2024-06-11 00:09:00

JavaScript模式變量

2022-10-11 08:00:47

多線程開發(fā)技巧

2020-08-11 08:11:40

JavaScript開發(fā)技術(shù)

2020-06-23 08:28:26

前端開發(fā)技巧

2025-01-07 10:48:08

2020-01-03 09:27:10

UI設(shè)計師網(wǎng)格

2010-04-30 10:07:45

Linux管理效率

2022-09-05 14:17:48

Javascript技巧

2022-08-24 14:42:51

Linux技巧

2024-09-06 15:48:13

2025-02-03 00:00:00

Vue.js組件緩存

2025-09-22 07:31:11

2012-03-07 14:46:29

2024-03-28 08:15:09

Spring技巧配置

2009-12-21 15:50:39

2009-09-04 10:27:28

Linux實用技巧linux操作系統(tǒng)linux

2022-03-23 09:18:10

Git技巧Linux
點贊
收藏

51CTO技術(shù)棧公眾號

亚洲欧美精品久久| 少妇一晚三次一区二区三区| 国产精华7777777| 成人羞羞网站| 日韩一区二区三| 成人免费观看在线| 精品三级久久久久久久电影聊斋| 日韩精品一二三| 不卡毛片在线看| 国产精品无码在线| 性欧美video另类hd尤物| 亚洲午夜激情av| 日韩中文字幕av在线| 国产高清视频免费观看| 麻豆精品网站| 久精品免费视频| 级毛片内射视频| 中文在线免费一区三区| 日本道色综合久久| 欧洲精品视频在线| 精品av中文字幕在线毛片| 国模一区二区三区白浆 | 2017亚洲天堂1024| 国产.欧美.日韩| 国产成人午夜视频网址| 精国产品一区二区三区a片| 视频一区欧美| 精品福利一二区| 亚洲欧美手机在线| 欧美自拍电影| 亚洲成av人片| 男女激烈动态图| 搞黄视频免费在线观看| 91在线视频18| 国产精品对白刺激久久久| 国产又色又爽又黄又免费| 久久精品免费| 97国产精品视频人人做人人爱| 999精品在线视频| 狠狠操综合网| 精品无人区太爽高潮在线播放 | 91在线丨porny丨国产| 成人免费激情视频| 欧美日韩 一区二区三区| 亚洲福利久久| 色综合91久久精品中文字幕| 国产wwwwxxxx| 日韩欧美中文| 在线观看欧美成人| 黄色片网站免费| 偷拍亚洲精品| 日韩经典一区二区三区| 91丨porny丨对白| silk一区二区三区精品视频| 日韩午夜精品视频| 中文字幕第三区| av日韩一区| 欧美久久久一区| 日本人69视频| 日韩欧乱色一区二区三区在线 | 精品人妻一区二区三区换脸明星 | 国产欧美日韩精品在线观看 | 日本女人性生活视频| 国内精品久久久久久久影视简单| 亚洲码在线观看| 美女久久久久久久久久| 国产免费播放一区二区| 亚洲欧美一区二区三区在线| 色婷婷在线影院| 精品国产123区| 中文字幕久久久av一区| 任你操精品视频| 91精品动漫在线观看| 另类专区欧美制服同性| 久久久久无码精品国产| 亚洲国产清纯| 欧美在线xxx| 精品成人无码久久久久久| 人妖欧美一区二区| 国产精品美乳在线观看| 国产精品毛片一区二区在线看舒淇 | 免费观看美女裸体网站| а√天堂8资源中文在线| 精品欧美激情精品一区| 国产视频一区二区三区在线播放| 欧美与亚洲与日本直播| 3d动漫精品啪啪1区2区免费 | 国产69精品久久久久久久| av免费不卡国产观看| 色香蕉成人二区免费| 激情五月俺来也| 日本成人手机在线| 亚洲精品福利资源站| 国产综合精品久久久久成人av| 欧美韩日一区| 久久久亚洲国产| 狠狠躁夜夜躁人人爽视频| 国产一区二区导航在线播放| 精品欧美一区二区在线观看视频| 超碰国产在线| 亚洲一二三级电影| 日本免费观看网站| 日韩三级久久| 亚洲天堂成人在线| 青青青在线视频| 久久久精品五月天| 亚洲伊人久久综合| 欧美香蕉爽爽人人爽| 亚洲女人的天堂| 久久国产亚洲精品无码| japansex久久高清精品| 日韩成人高清在线| 91视频最新网址| 亚洲一区二区成人| 91亚洲国产成人精品性色| 同心难改在线观看| 亚洲欧美色图小说| 国产v亚洲v天堂无码久久久| 中文字幕一区二区三区中文字幕 | 99精品国产在热久久婷婷| 国产精品福利无圣光在线一区| www香蕉视频| 国产精品乱码一区二区三区软件| 欧美视频免费看欧美视频| 欧美视频精品| 亚洲人精选亚洲人成在线| 九九热这里有精品视频| 蜜芽一区二区三区| 久久免费视频1| 五月天激情在线| 欧美日本精品一区二区三区| 三上悠亚ssⅰn939无码播放| 国产精品大片免费观看| 国产欧美日韩视频| 国产精品久久一区二区三区不卡| 亚洲国产成人tv| 亚洲成人激情小说| 偷偷www综合久久久久久久| 日本国产一区二区三区| 欧美一级做性受免费大片免费| 1024国产精品| 亚洲男人天堂av在线| 成人精品电影| 国产精品久久久久福利| 伦理片一区二区三区| 欧美日韩亚洲激情| 免费中文字幕av| 夜夜嗨一区二区三区| 国产精品嫩草在线观看| 后进极品白嫩翘臀在线播放| 欧美大片拔萝卜| 欧美日韩免费做爰视频| 国产河南妇女毛片精品久久久| 在线观看欧美一区| 99亚洲男女激情在线观看| 日韩亚洲第一页| 97人人爽人人爽人人爽| 亚洲人成亚洲人成在线观看图片| 男女视频在线观看网站| 欧美三级不卡| 国产精品伊人日日| 亚洲色图官网| 亚洲图片制服诱惑| 欧美在线视频精品| 国产精品成人网| 久久久久久久久久一区二区| 91成人国产| 国产精品乱子乱xxxx| 交100部在线观看| 亚洲美女www午夜| 国产剧情在线视频| 国产午夜亚洲精品羞羞网站| 成人三级视频在线播放 | 在线综合视频| 欧美日韩在线播放一区二区| 深夜在线视频| 亚洲毛片在线免费观看| 日韩精选在线观看| 不卡一区中文字幕| 日本精品免费在线观看| 九九精品在线| 国产精品视频资源| 日本蜜桃在线观看| 精品久久99ma| 国产精品午夜影院| 久久亚洲捆绑美女| 成人亚洲视频在线观看| 日韩精品久久久久久久电影99爱| 95av在线视频| а√天堂8资源在线| 亚洲日本欧美日韩高观看| 国产成人a v| 国产精品久久久爽爽爽麻豆色哟哟| www.污网站| 亚洲国产网站| 欧美日韩中文国产一区发布| 国产伦精品一区二区三区视频金莲| 亚洲一级免费视频| 国产免费叼嘿网站免费| 亚洲大片在线观看| a毛片毛片av永久免费| 韩国视频一区二区| 99热亚洲精品| 成人在线免费小视频| 91在线无精精品一区二区| 欧美人与禽猛交乱配| 日韩电影在线观看中文字幕 | 精品国产精品自拍| 女同久久另类69精品国产| 国产不卡免费视频| 日韩免费毛片视频| 一区二区三区午夜探花| 久久综合精品一区| 成人在线日韩| 青青草成人在线| 伊人在我在线看导航| 亚洲欧美日韩中文在线| 人妻一区二区三区四区| 欧美日韩在线三区| 国产精品成人国产乱| 国产亚洲一本大道中文在线| 亚洲成人激情小说| 青青草国产成人av片免费| 欧美亚洲黄色片| 日韩大片在线播放| 精品国产乱码久久久久久88av| 欧美特黄不卡| 国产精品网站入口| 免费在线小视频| 精品国模在线视频| 神马久久高清| 精品久久久久久久久久久久久久久久久| 日本熟妇一区二区三区| 午夜精品视频在线观看| 国产激情在线免费观看| 99国产欧美另类久久久精品| 欧美激情第一区| 日韩激情视频网站| 久久国产精品视频在线观看| 韩国精品一区二区三区| 中文字幕av导航| 国产aⅴ精品一区二区三区久久| 99久久一区三区四区免费| 伊人色综合一区二区三区影院视频 | 国产精品v片在线观看不卡| 18加网站在线| 日韩有码在线电影| 国产高清自拍视频在线观看| 亚洲精品国产综合区久久久久久久| 国产熟女一区二区丰满| 在线不卡一区二区| 在线视频一区二区三区四区| 亚洲国产欧美在线人成| 色老板免费视频| 中文字幕欧美三区| 成人一级片免费看| 久久美女高清视频| 三级男人添奶爽爽爽视频 | 色哟哟一区二区| 国产精品一区二区6| 午夜激情久久久| 成年人午夜视频| 亚洲高清三级视频| 久久久久久久福利| 国产精品激情偷乱一区二区∴| 在线日韩国产网站| 国产精品传媒视频| 超碰人人人人人人人| 国产日韩一级二级三级| 美女爆乳18禁www久久久久久| 国产精品丝袜久久久久久app| 国产高潮呻吟久久| 国产拍揄自揄精品视频麻豆| 亚洲国产日韩一区无码精品久久久| 2021中文字幕一区亚洲| 男女黄床上色视频| 国产亚洲欧美激情| 五月婷婷婷婷婷| 亚洲精品伦理在线| 国产一级片免费观看| 午夜av区久久| 欧美一区二区三区久久久| 欧美三级视频在线观看 | 91麻豆精品国产| 国产特级aaaaaa大片| 亚洲国产天堂久久综合网| 午夜在线观看视频18| 亚洲精品一区二区三区不| 黄色的视频在线免费观看| 日韩视频在线免费| 在线中文字幕第一页| 久久理论片午夜琪琪电影网| 黑人精品一区| 91麻豆国产精品| 色哟哟精品丝袜一区二区| 日韩国产在线一区| 综合国产精品| 日韩av片在线看| 看片的网站亚洲| 黄页网站在线看| 久久一二三国产| 久久精品黄色片| 福利视频导航一区| 中文字幕在线观看精品| 日韩欧美aaaaaa| 国产精品ⅴa有声小说| 欧美老少配视频| 亚洲天堂资源| 国产在线999| 偷拍精品福利视频导航| 国产精品无码乱伦| 99精品国产一区二区青青牛奶 | 欧美精品一区二区蜜桃| 亚洲高清三级视频| 国产精品色综合| 亚洲第一区第一页| 日本中文字幕在线播放| 97色在线观看免费视频| 亚洲精品tv| 欧美日韩在线精品| 黑丝一区二区三区| 手机在线国产视频| 久久久三级国产网站| 青娱乐免费在线视频| 欧美蜜桃一区二区三区| 香蕉av在线播放| 久久精品一区中文字幕| 成人爱爱网址| 国产在线精品一区二区三区》| 极品美女一区二区三区| 日韩网站在线免费观看| 国内精品伊人久久久久av影院| av无码av天天av天天爽| 一区二区三区四区五区视频在线观看| 精人妻无码一区二区三区| 亚洲国产精品嫩草影院久久| 米奇777四色精品人人爽| 日产精品99久久久久久| 国产精品17p| 久久这里只有精品8| 精品一区二区三区视频在线观看 | 蜜臀精品一区二区三区| 欧美大片在线观看一区| 巨大荫蒂视频欧美大片| 国产日产欧美a一级在线| 免费av一区二区三区四区| 精品少妇在线视频| 国产成人精品一区二| 欧美激情精品久久| 91精品国产免费| 2017亚洲天堂1024| 成人黄色免费片| 欧美一级精品片在线看| 日韩免费高清在线| 99国产精品久| 精品久久久久久久久久久国产字幕 | 在线观看成人黄色| 素人啪啪色综合| 五月天丁香综合久久国产 | 成年人小视频网站| 久久午夜老司机| 久久久精品免费看| 日韩大陆欧美高清视频区| 欧美电影h版| 日本精品免费| 日韩精品一区第一页| 国产午夜精品久久久久久久久| 一本一道综合狠狠老| 男女网站在线观看| 青草青草久热精品视频在线观看| 国产在线观看91一区二区三区| 无码人妻丰满熟妇区五十路百度| 91免费观看在线| 中文在线免费观看| 最近中文字幕mv在线一区二区三区四区| av在线日韩| 中国一级黄色录像| 国产91精品一区二区麻豆网站| 国产一级大片在线观看| 日韩av在线免费播放| 成人片免费看| 亚洲成人在线视频网站| 日本网站在线观看一区二区三区 | 亚洲永久精品大片| 国产18精品乱码免费看| 97久久精品人搡人人玩| 亚洲人成精品久久久| 在线观看av日韩| 国产精品久久久久久久午夜片| www五月婷婷| 18性欧美xxxⅹ性满足| 伊甸园亚洲一区| 中文字幕视频三区| 亚洲午夜一区二区| 婷婷亚洲一区二区三区| 91久久国产精品| 亚洲国产免费看| 欧美自拍偷拍网| 亚洲国产中文字幕久久网| 亚洲综合在线电影|