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

十個必須知道的 JavaScript 技巧,讓你成為更好的程序員

開發(fā) 前端
過去,我寫了很多垃圾代碼,現在,看起來很糟糕。當我再次看到那些代碼片段時,我甚至懷疑自己是否適合做一名程序員,但是,不管怎么樣,已經走在編程開發(fā)的路上了,所以不會不懂只能多學習了。

前言

過去,我寫了很多垃圾代碼,現在,看起來很糟糕。

當我再次看到那些代碼片段時,我甚至懷疑自己是否適合做一名程序員,但是,不管怎么樣,已經走在編程開發(fā)的路上了,所以不會不懂只能多學習了。

現在,我就把自己踩過的坑總結一下分享給你,希望對你有所幫助。

1. Promise回調地獄

Promises 提供了一種優(yōu)雅的方式來處理 JavaScript 中的異步操作。這也是避免“回調地獄”的解決方案之一。但是我并沒有真正理解它的意思,所以我寫了這段代碼。

我做了這些事情:

  • 先獲取用戶的基本信息。
  • 按用戶信息獲取所有文章的簡要摘要。
  • 通過文章簡單獲取文章詳情。
// ?
getUserInfo()
.then((userInfo) => {
getArticles(userInfo)
.then((articles) => {
Promise.all(articles.map((article) => getArticleDetail(article)))
.then((articleDetails) => {
console.log(articleDetails)
})
})
})

我在這里根本沒有利用 Promise,我們應該像下面的代碼片段一樣處理它:

// ?
getUserInfo()
.then((getArticles)
.then((articles) => {
return Promise.all(articles.map((article) => getArticleDetail(article)))
})
.then((articleDetails) => {
console.log(articleDetails)
})

2.不處理錯誤信息

我經常只寫請求成功的代碼邏輯,而忽略請求失敗的代碼邏輯。

// ?
const getUserInfo = async () => {
try {
const userInfo = await fetch('/api/getUserInfo')
} catch (err) {


}
}

這是沒有經驗的,我們應該給出一個用戶友好的提示,而不是什么都不做。

// ?
const getUserInfo = async () => {
try {
const userInfo = await fetch('/api/getUserInfo')
} catch (err) {
Toast(err.message)
}
}

3. 為函數設置太多參數

當一個函數的參數過多時,它的可讀性就會變差,甚至不知道如何正確傳遞參數。

例子

我們想獲取用戶的一些基本信息,比如姓名、性別、年齡等。

// ?
const getUserInfo = (name, age, weight, gender, mobile , nationality, hobby, address) => {
// ...
}
getUserInfo('fatfish', 100, 2000, ...)

以上這樣的代碼,那真是太糟了,如果你的同事這樣寫代碼,你會揍他嗎?

事實上,當函數參數過多時,應該使用對象來傳遞需要的信息,這樣會提高其可讀性和擴展性。

// ?
const getUserInfo = (options) => {
const { name, gender, age, mobile, weight, nationality, hobby, address } = options
// ...
}
getUserInfo({
name: 'fatfish',
age: 100,
weight: 2000
// ...
})

4.神奇的數字

小伙伴們,你們寫過這樣的代碼嗎?很多地方用數字來做邏輯判斷似乎很正常。是的,這讓我很困惑 1、2、3 到底是什么意思。

?
// component1.js
if (status === 1 || status === 2) {
// ...
} else if (status === 3) {
// ...
}
// component2.js
if (status === 1 || status === 2) {
// ...
}

我們最好將這些數字定義為常量。

// ?
// constants.js
export const STATUS = {
// It is an adult and has real-name authentication
adultRealName: 1,
// It is a minor and has real-name authentication
minorRealName: 2,
// Not real-name authentication
notRealName: 3,
// ...
}
// component1.js
import { STATUS } from './constants.js'
if ([ STATUS.adultRealName, STATUS.minorRealName ].includes(status)) {
// ...
} else if (status === STATUS.notRealName) {
// ...
}
// component2.js
import { STATUS } from './constants.js'
// component2.js
if ([ STATUS.adultRealName, STATUS.minorRealName ].includes(status)) {
// ...
}

5.使用.length判斷字符串長度

大多數時候,我們使用 .length 來判斷字符串的長度是安全的,但是在表單輸入的情況下要小心。

當我們輸入??時,nameLen的值為2——這不奇怪嗎?

// ?
<input type="text" id="name">
<script>
const $name = document.getElementById('name')
$name.addEventListener('blur', () => {
const name = $name.value
const nameLen = name.length
// input: fatfish => nameLen: 7
// input: ?? => nameLen: 2
console.log(`name: ${name}, nameLen: ${nameLen}`)
}, false)
</script>

是的,這是有原因的,你猜怎么著?

// ?
<input type="text" id="name">
<script>
const $name = document.getElementById('name')
$name.addEventListener('blur', () => {
const name = $name.value
const nameLen = name.length
const spRegexp = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g
const nameRealLen = name.replace(spRegexp, '_').length
// input: fatfish => nameLen: 7, nameRealLen: 7
// input: ?? => nameLen: 2, nameRealLen: 1
console.log(`name: ${name}, nameLen: ${nameLen}, nameRealLen: ${nameRealLen}`)
}, false)
</script>

6. 永遠不要寫代碼注釋

我們經常向別人抱怨,“你為什么不寫代碼注釋?” 但實際上,我們自己也從來不寫它!

// ?
const fn = (dpr) => {
if (dpr >= 2) {
// ...
} else {
}
}

我的天,你知道‘dpr’是什么意思嗎?沒想到是指window devicePixelRatio。

// ?
// dpr: Please enter a value for window.devicePixelRatio
const fn = (dpr) => {
if (dpr >= 2) {
// ...
} else {
}
}

7.無意義的代碼注釋

與其不寫代碼注釋,也不要寫無意義的代碼注釋,因為它浪費了你的時間。

你不妨解釋一下“a”的含義或使用有意義的變量名稱!

// ?
let a = 1 // Set the value of "a" to 1

8. 隨機命名

過去,我常常編寫隨機命名變量的笨拙代碼片段。

// ?
const mw = 375

因此,親愛的朋友們,請你們不要學我,你應該給變量一個適當且有意義的名稱。

?
const maxWidth = 375

9. 刪除不要棄用的代碼

很多時候,我們的網站會不斷調整功能,有新功能也有過時的功能,但我總是擔心以后會用到,所以我們總是注釋掉,并沒有刪除。

其實這種擔心是完全沒有必要的,因為以后用到的可能性很小。即使以后要用到,也可以通過‘git’來追溯。

圖片

10. 上千行組件代碼

我已經在一個組件中編寫了一千多行代碼。這太糟糕了,我們應該將組件的功能進一步拆分成更小的組件。

圖片

最后

感謝你的閱讀,以上就是我今天想要跟你分享的內容,如果你覺得我的內容對你有用的話,請點贊我,關注我,同時,也期待你的關注,這樣,你將會閱讀到更多編程技術相關的文章。

責任編輯:華軒 來源: web前端開發(fā)
相關推薦

2023-06-27 17:42:24

JavaScript編程語言

2022-06-08 10:42:34

ReduceJavaScript技巧

2021-09-15 09:20:37

Python函數代碼

2024-04-24 14:52:26

JavaScriptWeb 開發(fā)

2013-04-10 09:35:22

程序員

2009-06-25 10:15:41

糟糕的程序員

2011-05-11 15:28:05

2019-07-15 15:59:32

高維數據降維數據分析

2023-05-11 16:29:39

Javascript開發(fā)前端

2011-01-28 15:11:15

PowerShell

2023-11-13 08:18:56

2014-07-15 15:38:41

Android

2014-05-15 16:20:26

iOS程序員Android要點

2013-07-09 15:26:29

程序員算法

2018-05-23 14:10:15

程序員技能溝通

2024-03-20 17:35:42

2023-12-12 17:46:33

系統(tǒng)kswapd0內核

2012-12-28 09:58:50

程序員代碼編程

2022-10-17 15:33:46

前端開發(fā)數組

2022-07-26 09:09:23

Python編程語言代碼
點贊
收藏

51CTO技術棧公眾號

欧美日韩一区二区国产| 校园春色亚洲色图| 国产成人精品免费在线| 美女视频黄免费的亚洲男人天堂| 中文字幕66页| 91麻豆免费在线视频| 国产福利一区二区三区视频在线| 九九久久国产精品| 人妻av一区二区| 色呦呦在线看| 国产成人一区在线| 97高清免费视频| xxxx日本黄色| 曰本一区二区| 亚洲成a人v欧美综合天堂| 精品亚洲第一| 中文字幕视频免费观看| 欧美在线不卡| 亚洲韩国日本中文字幕| 欧美黄色性生活| 成人免费在线| 丁香网亚洲国际| 日本不卡高字幕在线2019| 成人免费看aa片| 国产一区二区久久久久| 亚洲成a人片综合在线| 日本精品一区| 六月丁香综合网| 日韩精品一二区| 欧美激情精品久久久久久久变态| 在线 丝袜 欧美 日韩 制服| 日韩毛片免费视频一级特黄| 亚洲观看高清完整版在线观看| 欧美中文娱乐网| 99国产精品久久久久99打野战| 一区二区三区四区五区精品视频| 色综合伊人色综合网| 国产 xxxx| 国产精品一区免费在线| 色婷婷av一区二区三区大白胸| 日本xxx免费| 黄色网址在线播放| 国产高清精品久久久久| 国产精品精品一区二区三区午夜版 | 成人综合在线观看| 国产精品一区二区三区久久| 超碰手机在线观看| 色综合咪咪久久网| 亚洲激情在线视频| 中文字幕1区2区| 视频二区欧美毛片免费观看| 欧美性做爰猛烈叫床潮| 少妇久久久久久被弄到高潮| 高清福利在线观看| 久久亚洲私人国产精品va媚药| 亚洲一区中文字幕| 91亚洲国产成人精品一区| 久久久久久久尹人综合网亚洲| 久久91精品国产91久久久| www.99re6| 日韩成人三级| 中文字幕亚洲精品| 亚洲永久精品ww.7491进入| 欧美毛片免费观看| 亚洲精品美女免费| 先锋资源在线视频| 精品裸体bbb| 色噜噜狠狠一区二区三区果冻| 免费看一级大黄情大片| аⅴ资源天堂资源库在线| 尤物av一区二区| 黄黄视频在线观看| 国产1区在线| 亚洲免费在线视频一区 二区| 伊人久久av导航| 麻豆传媒在线完整视频| 中文字幕在线不卡国产视频| 亚洲一区二区精品在线| 成人高清免费在线播放| 欧美激情在线一区二区| 欧美裸体网站| yiren22综合网成人| 欧美国产精品劲爆| 亚洲一区二区不卡视频| 国产最新在线| 亚洲激情欧美激情| 欧洲精品在线播放| 欧亚在线中文字幕免费| 在线影院国内精品| 午夜两性免费视频| 91丨精品丨国产| 日韩欧美卡一卡二| 国产在线观看免费播放| av成人资源| 国产偷亚洲偷欧美偷精品| 亚洲a v网站| 大胆日韩av| 日韩视频精品在线| 久久久久人妻一区精品色欧美| 国语对白精品一区二区| 欧美亚洲一级片| 亚洲综合视频在线播放| 国产精品一区二区三区四区 | 日韩在线精品强乱中文字幕| 精品国产成人在线影院 | 中文字幕欧美专区| 亚洲熟女www一区二区三区| 亚洲精品色图| 国产精品久久久久一区二区| 亚洲影视一区二区| 成人av网站在线观看免费| 欧美日韩电影一区二区| 操你啦视频在线| 亚洲va天堂va国产va久| 乌克兰美女av| 久久97精品| 中文字幕视频一区二区在线有码 | 欧美一级淫片aaaaaa| 久久亚洲一级片| 成人在线观看www| 国产自产自拍视频在线观看| 欧美日韩综合一区| 涩视频在线观看| 成人一区二区| 欧美精品www| 国产成人精品亚洲| 成av人片一区二区| 婷婷视频在线播放| 欧美特大特白屁股xxxx| 日韩免费视频线观看| 午夜精产品一区二区在线观看的| 国产精品theporn| 国产精品久久久久久久app| 亚洲精品久久久久久久久久| 欧美极品xxx| 欧美在线观看www| 懂色av色香蕉一区二区蜜桃| 亚洲欧美日韩国产成人| 妺妺窝人体色www婷婷| 免费欧美日韩国产三级电影| 国产乱码精品一区二区三区中文 | 99久久国产综合精品麻豆| 三年中文高清在线观看第6集| 啦啦啦中文在线观看日本| 精品视频1区2区| 30一40一50老女人毛片| 激情亚洲成人| 亚洲综合社区网| 日本视频在线| 在线观看免费亚洲| 一区二区三区伦理片| 欧美日韩爆操| 91在线视频导航| 免费在线你懂的| 欧美在线观看视频一区二区 | 毛茸茸free性熟hd| 午夜日韩av| 91免费版网站入口| 黄色在线视频网站| 欧美日韩国产a| 色噜噜噜噜噜噜| 日产国产欧美视频一区精品| 国产综合精品一区二区三区| 在线视频观看国产| 日韩一卡二卡三卡国产欧美| 玖玖爱这里只有精品| 国产精品综合av一区二区国产馆| 亚洲亚洲精品三区日韩精品在线视频| 91久久久久久白丝白浆欲热蜜臀| 亚洲人成电影网| 日韩电影在线观看一区二区| 国产亚洲精品久| 最近免费中文字幕中文高清百度| 成人精品动漫一区二区三区| 久久久久国产精品免费| 噜噜噜久久,亚洲精品国产品| 亚洲一区二区欧美| 久久久久麻豆v国产精华液好用吗| 最新亚洲激情| 欧美性天天影院| 成人精品国产亚洲| 亚洲欧美国产高清va在线播| 91久久中文字幕| 1区2区在线观看| 精品福利一二区| 久久久精品国产sm调教| 国产精品一二三区在线| 免费高清一区二区三区| 欧美成人午夜77777| 日韩美女毛茸茸| 日本在线免费| 日韩欧美一级二级| 免费在线不卡视频| 国产精品天干天干在线综合| 91国内在线播放| 99re6这里只有精品| 91欧美日韩一区| 高潮在线视频| 亚洲天堂2020| 国产免费无遮挡| 亚洲大尺度视频在线观看| 在线观看国产网站| 精品一区二区三区在线播放视频 | 91精品国偷自产在线电影 | 亚洲精品永久免费| 在线免费一级片| 一区二区三区美女视频| 国产一级二级在线观看| 久久不射2019中文字幕| 国产免费色视频| 久久悠悠精品综合网| 国产精品福利无圣光在线一区| 99自拍视频在线观看| 日韩精品视频免费| 国产视频一二三四区| 精品国产1区2区| 激情无码人妻又粗又大| 成人国产一区二区三区精品| 一本久道久久综合狠狠爱亚洲精品 | 中文字幕欧美三区| 精品1卡二卡三卡四卡老狼| 美女国产一区二区三区| 欧美交换配乱吟粗大25p| 久久综合亚洲| 国产精品对白一区二区三区| 久久er热在这里只有精品66| 国内精品久久久久影院优| h网站视频在线观看| 欧美一区二区三区不卡| 无码人妻一区二区三区线| 亚洲无线码一区二区三区| 日本 欧美 国产| 国产亚洲福利社区一区| 亚洲黄色小说在线观看| 美女视频网站久久| 女人扒开屁股爽桶30分钟| 国产精品豆花视频| 欧美日韩在线免费观看视频| 欧美午夜精彩| 久久综合毛片| 露出调教综合另类| 不卡一区二区三区四区五区| 欧美一级在线| 日本国产精品视频| 激情视频网站在线播放色| 欧美日本亚洲视频| 黄色av电影在线播放| 国产午夜精品视频| 免费在线视频你懂得| 亚洲黄色在线观看| www.黄色片| 欧美一级黄色大片| 97人妻人人澡人人爽人人精品| 在线免费观看一区| 四虎成人在线观看| 粉嫩av一区二区三区免费野| 久久国产露脸精品国产| 亚洲狠狠丁香婷婷综合久久久| 91香蕉视频在线播放| 中文字幕一区二区在线播放| 成年人在线免费看片| 久久久久久久久久久久久女国产乱| 18深夜在线观看免费视频| 国产资源精品在线观看| 亚洲综合伊人久久| 国产一区二区美女| 少妇性l交大片7724com| 国产高清视频一区| 亚洲av成人片无码| 国产精品综合一区二区三区| 伊人av在线播放| 高清免费成人av| 久久久高清视频| 91啪亚洲精品| 国产成人福利在线| 国产日韩欧美a| 成人信息集中地| 亚洲天堂av一区| 久久久久亚洲av无码专区| 亚洲国产另类av| 国产 欧美 日韩 在线| 一本色道久久综合狠狠躁的推荐| 狠狠人妻久久久久久| 欧美性生交片4| 中文字幕日本人妻久久久免费| 欧美丰满少妇xxxbbb| 一级黄色片在线观看| 日韩情涩欧美日韩视频| 天堂在线资源8| 国产亚洲精品成人av久久ww| 色开心亚洲综合| 久久99精品久久久久久青青91| 69av成人| 国产精品久久久久久久久久新婚| 少妇精品视频在线观看| 成人在线国产精品| 精品丝袜久久| 日韩理论片在线观看| 亚洲午夜精品一区 二区 三区| 黄色一级视频在线播放| 视频一区中文字幕国产| 午夜大片在线观看| 91美女福利视频| 潘金莲一级黄色片| 精品magnet| 夜夜躁狠狠躁日日躁av| 精品国产髙清在线看国产毛片| 日本高清视频网站| 国产亚洲综合在线| 久久99久久久| 欧美日韩中文一区| 国产av精国产传媒| 亚洲女人被黑人巨大进入| 免费在线看a| 欧美亚洲日本网站| 久久伊人影院| 久久久精彩视频| 成人国产精品一级毛片视频| 国产在线无码精品| 蜜臀精品一区二区三区在线观看| 极品白嫩少妇无套内谢| 国产精品久久一卡二卡| 亚洲欧美制服另类日韩| 香蕉久久国产av一区二区| 欧美成在线视频| 欧美亚洲黄色| 亚洲精品一区二区三区蜜桃久| 在线视频亚洲| 欧美夫妇交换xxx| 一区二区三区四区视频精品免费 | 日韩一区二区精品在线观看| 在线观看免费网站黄| 日韩美女免费观看| 蜜桃一区二区| 高清在线观看免费| 99久久国产综合精品麻豆| 免费在线观看黄网站| 亚洲国产精品大全| 国产高清中文字幕在线| 成人高清在线观看| 国产在线不卡| 亚洲黄色小说在线观看| 亚洲一二三区视频在线观看| 亚洲av永久无码国产精品久久| 欧美巨大黑人极品精男| 精品一区二区三区中文字幕 | 午夜精品福利一区二区三区av| 亚洲精品无码专区| 久久久久久国产免费| 亚洲一区二区三区中文字幕在线观看 | 亚洲风情在线资源站| 噜噜噜久久,亚洲精品国产品| 欧美极品美女电影一区| 大奶在线精品| 激情综合在线观看| 国产亚洲欧美色| 在线视频 91| 久久99久久久久久久噜噜| 国产91精品入| 人妻少妇被粗大爽9797pw| 欧美激情综合在线| 国产精品一区二区黑人巨大| 欧美成人午夜剧场免费观看| 精品久久97| 99久久激情视频| 成人免费一区二区三区视频| 国产高潮流白浆喷水视频| 高清欧美性猛交xxxx黑人猛交| 思热99re视热频这里只精品| 午夜激情福利在线| 中文字幕日韩av资源站| 亚洲国产精品久久人人爱潘金莲| 韩国欧美亚洲国产| 欧美美女视频| 日本美女久久久| 亚洲第一成年网| 8888四色奇米在线观看| 亚洲精品欧美一区二区三区| 亚洲国产精品第一区二区| 微拍福利一区二区| 日韩一区二区三区精品视频| 秋霞伦理一区| 男插女免费视频| 91丨porny丨中文| 国产精品无码免费播放| 91国产精品电影| 99久久婷婷这里只有精品 | 国产一区二区三区四区视频| 久久91亚洲精品中文字幕奶水| 综合综合综合综合综合网| 99日在线视频| 欧美视频裸体精品| 麻豆传媒在线免费看| 久久久久一区二区| 激情都市一区二区| 亚洲国产精品福利| 国产成人精品一区二区三区视频| 分分操这里只有精品| 国产精品二三区| 四虎精品成人免费网站|