国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

JavaScript重構(gòu)技巧 — 數(shù)組,類名和條件

開發(fā) 前端
JavaScript 是一種易于學(xué)習(xí)的編程語言,編寫運(yùn)行并執(zhí)行某些操作的程序很容易。然而,要編寫一段干凈的JavaScript 代碼是很困難的。

JavaScript 是一種易于學(xué)習(xí)的編程語言,編寫運(yùn)行并執(zhí)行某些操作的程序很容易。然而,要編寫一段干凈的JavaScript 代碼是很困難的。

[[329242]]

在本文中,我們學(xué)習(xí)如何使用數(shù)組來代替條件語句,以及如何使用classList操作類名。

用數(shù)組檢查替換長表達(dá)式

平時開發(fā)中,我們可能會寫如下的代碼:

  1. if (fruit === 'apple' || fruit === 'orange' || fruit === 'grape') { 
  2.   //... 

對于上面,我們可以使用一些數(shù)組方法來減少條件表達(dá)式的長度。

一種方法是使用數(shù)組的include方法:

  1. if (['apple''orange' ,'grape'].includes(fruit)) { 
  2.   //... 

如果傳遞給參數(shù)的值包含在數(shù)組實(shí)例中,include方法返回true,否則返回false。

另一種方法是使用數(shù)組的some方法:

  1. if (['apple''orange''grape'].some(a => a === fruit)) { 
  2.   //... 

通過some方法,我們可以檢查回調(diào)中是否存在具有給定條件的數(shù)組元素。

如果存在一個或多個,則返回true,否則返回false。

在 DOM 元素中使用 classList 屬性

檢查 DOM 元素中是否存在類并操作多個類的最簡單方法是使用classList屬性。

例如,如果要添加多個類,可以使用下面方式:

  1. const p = document.querySelector('p'); 
  2. p.classList.add('foo'); 
  3. p.classList.add('bar'); 
  4. p.classList.add('baz'); 

這樣,我們可以添加多個類而無需操作字符串。我們只是獲得DOM元素對象的classList屬性,然后調(diào)用add通過將帶有類名的字符串傳遞到add方法中來添加類。

現(xiàn)在,渲染的DOM元素具有foo,bar和baz類。

同樣,我們可以調(diào)用classList屬性的remove方法,該方法使用一個帶有要刪除的類名的字符串來刪除該類。

例如,我們可以這樣寫:

  1. const p = document.querySelector('p'); 
  2. p.classList.add('foo'); 
  3. p.classList.add('bar'); 
  4. p.classList.add('baz'); 
  5. p.classList.remove('baz'); 

要檢查 DOM 元素對象中是否存在類名,可以使用contains方法。

例如,我們可以這樣寫:

  1. const p = document.querySelector('p'); 
  2. p.classList.add('foo'); 
  3. p.classList.add('bar'); 
  4. const hasBaz = p.classList.contains('baz'); 

上面判斷 p 元素是否包含 baz 類,因為 p 沒有包含 baz類,所以返回false。

classList屬性還有toggle方法,表示切換類(添加或者移除),例如下面的代碼:

  1. const p = document.querySelector('p'); 
  2. const button = document.querySelector('button'); 
  3. p.classList.add('foo'); 
  4. p.classList.add('bar'); 
  5.  
  6. button.onclick = () => { 
  7.   p.classList.toggle('bar'); 

每點(diǎn)擊一次按鈕,p 的上 bar 類就會添加或者移除。

clasList屬性有一個類似數(shù)組的可迭代對象,稱為DOMTokenList對象。因此,我們可以使用展開操作符將其轉(zhuǎn)換為數(shù)組,將clasList轉(zhuǎn)換為一個帶有類名的字符串?dāng)?shù)組。

例如,我們可以這樣寫:

  1. const p = document.querySelector('p'); 
  2. p.classList.add('foo'); 
  3. p.classList.add('bar'); 
  4. const classArr = [...p.classList]; 

上面 classArr 最終值為[“foo”, “bar”]。

一旦我們將DOMTokenList轉(zhuǎn)換為一個數(shù)組,那么我們就可以使用任何數(shù)組方法來操作代碼。

總結(jié)

帶有 || 操作的長條件語句,我們使用對應(yīng)數(shù)組方法來進(jìn)行優(yōu)化。

要操作多個類名,我們應(yīng)該使用作為DOM元素對象一部分的classList屬性。通過這種方式,我們可以添加、刪除和切換類,而不需要操作字符串并自己將其設(shè)置為className屬性。

John Au-Yeung 來源:medium 譯者:前端小智

 

原文:https://levelup.gitconnected.com/javascript-refactoring-tips-making-functions-clearer-and-cleaner-c568c299cbb2

本文轉(zhuǎn)載自微信公眾號「 大遷世界」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系 大遷世界公眾號。

 

責(zé)任編輯:武曉燕 來源: 大遷世界
相關(guān)推薦

2020-06-10 08:37:21

JavaScript重構(gòu)技巧

2020-06-09 09:13:12

JavaScript重構(gòu)對象

2022-04-21 07:20:39

Javascript重構(gòu)邏輯

2019-06-27 10:35:40

JavaScript條件式匹配條件

2020-05-27 09:30:52

JavaScript重構(gòu)函數(shù)

2020-06-01 08:42:11

JavaScript重構(gòu)函數(shù)

2022-07-04 08:51:43

條件語句JavaScript

2020-08-21 17:40:15

JavaScript開發(fā) 技巧

2011-06-09 15:27:01

JavaScript

2010-10-08 09:42:23

JavaScript方

2011-06-03 13:48:18

JavaScript重構(gòu)

2021-09-29 06:03:37

JavaScriptreduce() 前端

2020-02-27 09:55:46

開發(fā)技能代碼

2009-07-08 17:42:26

this屬性

2022-11-28 23:48:06

JavaScript編程語言技巧

2025-09-10 08:23:11

代碼重構(gòu)技巧

2017-03-06 20:39:41

整潔代碼Clean Code

2020-05-18 10:52:00

前端JavaScript html

2023-11-23 11:37:13

JavaScript數(shù)組

2023-09-05 08:00:00

開源GreptimeDB
點(diǎn)贊
收藏

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

午夜精品久久久久久久白皮肤| 久久99精品国产99久久| 黄色在线看片| 亚洲一线二线三线视频| 国产一级黄色录像片| 日韩五码在线| 97久久精品午夜一区二区| 久草在线成人| 992tv成人免费视频| 激情久久免费视频| 最近2019免费中文字幕视频三| zzzwww在线看片免费| 欧美一区二区三区系列电影| 国产最新视频在线| 一本大道久久a久久精品综合| 2020中文字幕在线播放| 中文字幕亚洲成人| 中国免费黄视频| 久久久国产一区二区三区四区小说| 免费观看亚洲视频| 国产精品一卡二| 欧美一区二区三区综合| 激情欧美一区二区| 日韩不卡一二区| 国产成人在线视频免费播放| 黄色一级片av| 国产精品亚洲人在线观看| 免费在线精品视频| 高清国产一区二区三区| 毛片在线播放视频| 久久久久国产精品免费免费搜索| 三级在线免费看| 国产精品高潮久久久久无| 999精彩视频| 亚洲精品高清视频在线观看| 天堂аⅴ在线最新版在线 | 欧美高清日韩| 国产女主播一区二区三区| 黄色一区二区三区四区| 黑人中文字幕一区二区三区| 久久久久久久波多野高潮日日| 一本久道久久综合| jiyouzz国产精品久久| 亚洲性生活网站| 亚洲图片欧美色图| 麻豆tv入口在线看| 欧美精品一区二区三区视频| 国产精品无码久久久久| 午夜精品理论片| 亚洲香蕉av| 日本成人性视频| 欧美国产日韩亚洲一区| 日韩黄色网址| 精品久久久久久亚洲综合网| 四虎精品一区二区免费| 国产精品啪视频| 日韩电影免费一区| 免费激情视频在线观看| 精品久久久久久| 92久久精品| 国产ts人妖一区二区三区| 国产欧美91| 成人在线观看a| 精品久久久久久中文字幕大豆网| av文字幕在线观看| 久久国产精品偷| 一区二区电影| 久久亚洲a v| 亚洲高清免费观看| 精品三级久久| 国产精品视频最多的网站| 久久www免费人成看片高清| 国产剧情av在线| 亚洲精品中文字幕av| 五月综合久久| 一本一道久久a久久精品综合 | 欧美军同video69gay| 国产精品99| 99re在线播放| 成人亚洲精品久久久久软件| 天堂在线视频| 一本色道久久88精品综合| 国产精品毛片久久| 国产91在线免费| 91麻豆精品国产91久久久久| 久久影院资源站| 宅男av一区二区三区| 亚洲国产一区二区三区青草影视| 蜜臀av在线| 日本午夜在线亚洲.国产| 国产老肥熟一区二区三区| 黄视频在线播放| 欧美专区在线播放| 国产成人综合网站| youjizz在线播放| 91国产精品电影| 国产白丝网站精品污在线入口| 福利片在线观看| 韩国精品久久久999| 国产原创一区二区三区| 99riav在线| 国产精品看片资源| 国产日韩成人精品| 中文字幕资源网在线观看免费 | 一本一道波多野结衣一区二区| 日韩一级特黄| 亚洲一区三区| 日本久久一区二区三区| 国产乱论精品| av网站大全免费| 欧美久久久一区| 欧美激情另类| 亚洲一本大道| 国内久久久精品| 972aa.com艺术欧美| 在线毛片观看| 在线观看日韩羞羞视频| 日韩欧美一级二级三级久久久| 国产一区二区三区四区三区四| 91青娱乐在线视频| 日本精品va在线观看| 中文av字幕一区| 久久aimee| 很黄很污的网站| 欧美中文字幕在线| 欧美国产亚洲另类动漫| 精品成人18| 精品久久久久av| 久久婷婷国产麻豆91天堂| 不卡大黄网站免费看| 中韩乱幕日产无线码一区| 久久久99精品视频| 在线电影欧美日韩一区二区私密| 国产高清不卡一区| 欧美日韩va| 久草综合在线观看| 久久久久亚洲精品| 亚洲精品视频一区| 91精品国产自产在线观看永久∴| 一二三在线视频社区| 激情五月色综合亚洲小说| 一本久久a久久免费精品不卡| av在线不卡免费观看| 超碰在线免费| 国产精品视频色| 亚洲成人免费视频| 中国成人一区| 日本免费视频在线观看| 日韩偷拍一区二区| 亚洲视频专区在线| 91污在线观看| 亚洲v天堂v手机在线| 在线成年人视频| 欧美精品v日韩精品v国产精品| 自拍偷拍欧美视频| 国产主播一区二区三区四区| 666欧美在线视频| 精品在线你懂的| 欧美videos粗暴| 久久久久久久久久久久久久久久久久久| 欧美精品电影| 中文字幕久精品免| 色屁屁www国产馆在线观看| 久久艳妇乳肉豪妇荡乳av| 日韩欧美国产精品一区| 久久99热国产| 国产一区二区三区亚洲综合| 日韩欧美国产片| 亚洲xxx大片| 欧美变态tickling挠脚心| 国产成人综合亚洲91猫咪| 欧美精品三级在线| 四虎在线免费看| 婷婷四房综合激情五月| 日韩中文av在线| 亚洲午夜免费福利视频| 惠美惠精品网| 国产欧美日韩一区二区三区四区| fc2ppv完全颜出在线播放| 91精品综合视频| 亚洲国产欧美一区二区丝袜黑人 | 国产精品资源网| 色狠狠久久av综合| 美女写真理伦片在线看| 国产不卡一区二区视频| 国产日韩欧美日韩| 亚洲老板91色精品久久| 亚洲精品乱码久久久久久| 日日摸夜夜添夜夜添精品视频 | 欧美在线一区视频| 国产欧美va欧美va香蕉在| 亚洲黄一区二区| 亚洲综合视频在线| 精品一区二区三区免费毛片爱| 精品国产乱码久久久久久果冻传媒 | 国产日韩欧美一区| 日韩三级成人| 大陆极品少妇内射aaaaaa| 一区二区三区精品99久久| aⅴ色国产欧美|