精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

日韩久久免费电影| 性做久久久久久久免费看| 国产精品专区h在线观看| 女同久久另类69精品国产| 婷婷久久免费视频| 亚洲婷婷综合色高清在线| 99porn视频在线| 自拍偷拍欧美亚洲| 欧美日韩中文一区二区| 日韩精品资源二区在线| 亚洲人成色77777| 浪潮av一区| 99久久99精品久久久久久 | 日本午夜小视频| 欧美呦呦网站| 日韩欧美亚洲一区二区| 欧美三级午夜理伦三级| h片在线免费观看| 久久久久成人黄色影片| 91中文字精品一区二区| 精品一级少妇久久久久久久| 日韩激情啪啪| 日韩三级视频在线看| 任你操这里只有精品| 污网站在线免费看| 国产精品理论在线观看| 久久天堂国产精品| av网站在线免费看| 乱一区二区av| 国产91精品久久久久久| 校园春色 亚洲| 日韩欧美午夜| 亚洲天堂色网站| 污网站免费观看| 精品午夜视频| 911精品产国品一二三产区| 日韩视频免费在线播放| 牛牛电影国产一区二区| 亚洲日韩欧美一区二区在线| 日本一区视频在线播放| 青青九九免费视频在线| 成人av在线资源网站| 99热在线播放| 99精品久久久久久中文字幕| 男人的天堂久久精品| 国产a级全部精品| 国偷自拍第113页| 亚洲激情在线| 久久久久成人精品| 九九视频免费观看| 午夜精品久久久久99热蜜桃导演 | 精品丝袜在线| 亚洲成av人综合在线观看| 狠狠干视频网站| www免费在线观看| 综合久久综合久久| 在线一区高清| 国产激情视频在线| 亚洲精品国产一区二区精华液| 日本黄色播放器| 黄色小网站在线观看| 亚洲特级片在线| 欧美性受黑人性爽| 天堂av最新在线| 亚洲综合自拍偷拍| 欧美 日韩 国产 高清| 国产三级电影在线播放| 欧美性色xo影院| 日韩av在线综合| 视频一区在线免费看| 欧美丝袜丝nylons| 国产精欧美一区二区三区白种人| 91精品国产一区二区在线观看| 欧美高清激情brazzers| 亚洲 自拍 另类 欧美 丝袜| 6080成人| 亚洲老司机av| 山东少妇露脸刺激对白在线| 午夜片欧美伦| 久久久久久伊人| 久久青青草原亚洲av无码麻豆| 日韩电影免费一区| 亚洲一区二区在线播放| 亚洲高清视频在线播放| 久久综合九色综合欧美98| 日韩在线三区| 日本高清在线观看视频| 欧美午夜xxx| www.久久久精品| aiss精品大尺度系列| 亚洲欧洲国产一区| 国产美女福利视频| 国产欧美激情| 成人黄色午夜影院| 少妇精品视频一区二区| 欧美国产综合色视频| 国产一区 在线播放| 一区二区精品伦理...| 欧美日韩一级视频| 91丨porny丨对白| 成人a'v在线播放| 久久久久久亚洲| 国产一区二区三区中文字幕| 成人精品电影在线观看| 天堂精品一区二区三区| 欧美人与动牲性行为| 91福利视频网站| 亚洲美女高潮久久久| 日韩国产一区二区| 2018日韩中文字幕| av中文字幕在线免费观看| 久久理论电影网| 欧美这里只有精品| 九九久久国产| 亚洲女人天堂av| 久久精品欧美一区二区| 久久66热re国产| 欧美一区激情视频在线观看| 2021天堂中文幕一二区在线观| 欧美群妇大交群的观看方式| 精品人妻一区二区三区视频| 欧美性色综合| 91热福利电影| h视频在线观看免费| 婷婷六月综合亚洲| 性感美女一区二区三区| 小说区亚洲自拍另类图片专区| 日韩美女视频在线观看| 色呦呦视频在线| 亚洲综合偷拍欧美一区色| jizzzz日本| 日本欧美视频| 国产精品精品视频一区二区三区| 天天综合在线视频| 午夜精品久久久久久久| 久草免费资源站| 中文一区一区三区免费在线观看| 国产日韩欧美影视| av中文字幕一区二区三区| 在线欧美日韩精品| 国产真实乱人偷精品人妻| 亚洲免费网站| 蜜桃狠狠色伊人亚洲综合网站| 日韩123区| 欧美草草影院在线视频| 强行糟蹋人妻hd中文| 国产一区视频导航| 国产精品88久久久久久妇女| 涩涩涩久久久成人精品| 日韩中文字幕国产| 国产美女三级无套内谢| 亚洲欧美日韩国产一区二区三区 | 在线观看欧美日韩国产| 国产美女www爽爽爽| 国产欧美一区二区精品仙草咪| 老头吃奶性行交视频| 欧美日韩性在线观看| 国产日韩在线一区| 麻豆影视国产在线观看| 91精品午夜视频| 免费麻豆国产一区二区三区四区| 国产成人精品一区二区三区四区 | 亚洲精品日产| 亚洲天堂久久av| 亚洲一区精品在线观看| 亚洲女同女同女同女同女同69| 黄色片子免费看| 亚洲国产精品一区| 免费成人av网站| 99re久久| 欧美丰满片xxx777| 无码国产伦一区二区三区视频 | 久久国产精品久久久久| www.日韩高清| 欧美性xxxx极品hd欧美风情| 人妻精品久久久久中文| 精品亚洲porn| 九九热只有这里有精品| 免费久久久久久久久| 国产精品视频地址| 日本性爱视频在线观看| 亚洲精品永久免费| 亚洲一区二区三区高清视频| 曰韩精品一区二区| 黄色录像a级片| 免费在线观看日韩欧美| 看一级黄色录像| 农村少妇一区二区三区四区五区| 国产91九色视频| 羞羞视频在线观看不卡| 亚洲人成毛片在线播放| 99精品在线视频观看| 欧美日韩性视频| 午夜剧场免费在线观看| 99国产精品久久久久久久久久久 | 91国产丝袜播放在线| 国产精品久久三区| 中文字幕乱码一区| 日本特黄久久久高潮| 黄色a级片免费看| 日韩欧美精品一区| 久久综合九色综合久99| 麻豆视频久久| 国产精品成人一区| av电影免费在线看| 精品国产依人香蕉在线精品| 亚洲欧美自偷自拍| 日韩亚洲欧美成人一区| 免费黄色片视频| 午夜精品免费在线| 美国黄色小视频| 欧美高清一级片在线观看| 国产一级黄色录像| 国产成人一级电影| 污污动漫在线观看| 老鸭窝毛片一区二区三区| 国产黄色片免费在线观看| 国产精品福利在线观看播放| 欧美专区一二三 | 亚洲最大免费| 夜夜春成人影院| 国产乱码一区| 伊人精品综合| 91入口在线观看| 先锋影音网一区二区| 国产精品免费一区| 高清电影一区| 欧美自拍视频在线| 美女av在线免费看| 国模私拍一区二区三区| 免费电影视频在线看| 欧美超级免费视 在线| 久久bbxx| 久热在线中文字幕色999舞| 在线免费av网站| 色偷偷91综合久久噜噜| 777电影在线观看| 国产一级揄自揄精品视频| 可以在线观看的av网站| 亚洲精品美女久久| 熟妇人妻中文av无码| 亚洲国产日韩欧美在线图片| 高清乱码毛片入口| 精品成人免费观看| 人人妻人人玩人人澡人人爽| 亚洲精品在线观| 欧美 日韩 国产 精品| 亚洲黄色有码视频| av女名字大全列表| 亚洲精品网址在线观看| 欧美日韩影视| 亚洲新声在线观看| 懂色一区二区三区| 色偷偷噜噜噜亚洲男人| 麻豆av在线免费看| 欧美日韩aaaa| cao在线视频| 2019中文字幕全在线观看| 中文在线8资源库| 国产精品久久久久久久久粉嫩av| 成人国产激情| 亚洲影视九九影院在线观看| 97久久综合区小说区图片区| 国产亚洲欧美一区二区| 校园春色另类视频| 午夜精品福利一区二区| 99久久夜色精品国产亚洲狼 | 免费在线观看a视频| 欧美韩日一区二区三区四区| 91免费公开视频| 亚洲国产精品尤物yw在线观看| 日本网站免费观看| 欧美性欧美巨大黑白大战| 91九色蝌蚪91por成人| 日韩欧美一区二区在线视频| 天天干,夜夜爽| 中文国产亚洲喷潮| av观看在线| 欧美一级成年大片在线观看| 成人国产精品入口免费视频| av资源站久久亚洲| 亚洲调教一区| 青青草原国产免费| 91久久综合| 91极品视频在线观看| 国产成人免费视频一区| 国产肥白大熟妇bbbb视频| 亚洲欧美一区二区三区孕妇| 精品美女久久久久| 欧美日韩二区三区| 午夜视频免费在线| www.亚洲免费视频| 欧产日产国产精品视频| 成人精品久久久| 欧美激情影院| 亚洲黄色网址在线观看| 天堂蜜桃一区二区三区| 日本xxxx免费| 国产精品福利一区二区| 日韩三级一区二区三区| 欧美日韩高清一区二区三区| 天堂在线视频免费| 久久国产精彩视频| 日韩精品一区二区三区av| 国产精品二区在线观看| 色琪琪久久se色| 日本一区二区黄色| 丰满白嫩尤物一区二区| 国产午夜精品久久久久久久久| 亚洲a一区二区| 国产毛片毛片毛片毛片| 国产一区二区三区在线| 电影在线观看一区| 91系列在线播放| 成人在线视频免费观看| www.四虎成人| av亚洲精华国产精华| 欧美日韩在线视频免费播放| 欧美亚洲丝袜传媒另类| 九色网友自拍视频手机在线| 欧美—级a级欧美特级ar全黄| 婷婷久久免费视频| 亚洲欧美成人一区| 日韩电影在线观看电影| 中日韩精品一区二区三区| 亚洲国产成人av| av中文字幕观看| 欧美成人免费小视频| 欧美一级做一级爱a做片性| 日韩国产美国| 日韩精品亚洲一区| www.黄色在线| 欧美曰成人黄网| 成人在线视频成人| 国产福利成人在线| 国内黄色精品| 99免费视频观看| 国产色产综合产在线视频| 久久国产黄色片| 亚洲人成网站999久久久综合| 自由日本语热亚洲人| 美女黄毛**国产精品啪啪| 亚洲精选在线| 成人无码www在线看免费| 五月婷婷综合在线| 亚洲av成人精品日韩在线播放| 97在线视频免费看| 国产精品jk白丝蜜臀av小说| 蜜臀av色欲a片无码精品一区 | 免费网站在线观看人| 粉嫩av免费一区二区三区| 亚洲成人中文| 亚洲中文字幕无码av| 欧美性xxxxhd| av片在线看| 91久久精品久久国产性色也91| 亚洲最大av| 日本美女视频网站| 精品久久久久久国产91| 久久精品国产亚洲a∨麻豆| 日韩免费观看高清| 97精品中文字幕| 青青草精品在线| 亚洲成a天堂v人片| 黄上黄在线观看| 国产日韩在线免费| 国内精品美女在线观看| 最近中文字幕无免费| 91成人网在线| 欧美18一19xxx性| 岛国一区二区三区高清视频| 中文日韩在线| 国产无遮挡在线观看| 欧美一级二级三级乱码| 国产免费拔擦拔擦8x在线播放| 欧美日韩一区二区三| 精品亚洲国产成人av制服丝袜 | 在线观看中文字幕不卡| 午夜视频在线| 国产伦精品一区二区三区在线 | 五月综合激情网| 天堂中文а√在线| 9a蜜桃久久久久久免费| 久久99伊人| 农村妇女精品一区二区| 亚洲精品国产欧美| 91精品视频一区二区| 免费看的黄色大片| 亚洲视频精选在线| 五月婷婷丁香花| 91久久久精品| 久久99伊人| 久久久久久久福利| 国产亚洲人成网站在线观看| 日韩在线观看一区二区三区| 国产麻花豆剧传媒精品mv在线| 亚洲精品免费一二三区| 黑人与亚洲人色ⅹvideos| 99三级在线| 精品在线一区二区三区|