摘要:工作中好的編程風(fēng)格會更友好,不好的編程風(fēng)格會讓隊(duì)友難受變量的聲明使用和代替存在變量提升等副作用,聲明常量使用命名規(guī)范使用小駝峰命名,變量名可讀性好使用變量說明不要出現(xiàn)讓人覺得晦澀難懂的變量不要重復(fù)命名當(dāng)一個(gè)對象名有意義的時(shí)候,對象里面的的命
工作中好的編程風(fēng)格會更友好,不好的編程風(fēng)格會讓隊(duì)友難受
變量的聲明
使用let和const代替var(var存在變量提升等副作用),聲明常量使用const
// bad var name = "zero" // good let name = "zero" // bad var MAX = 100 // good const MAX = 100
命名規(guī)范
使用小駝峰命名,變量名可讀性好
// bad let l_name = "zero" // good let lastName = "zero"
使用變量說明
不要出現(xiàn)讓人覺得晦澀難懂的變量
// bad if (time < 120) { todo() } // good const MINUTES_IN_TWO_HOUR = 120; if (time < MINUTES_IN_TWO_HOUR) { todo() }
不要重復(fù)命名
當(dāng)一個(gè)對象名有意義的時(shí)候,對象里面的key的命名不需要重復(fù)對象名
// bad let Student = { studentName = "zero", studentAge = 18 } // good let Student = { name = "zero" age = 18 }
字符串命名
靜態(tài)字符串使用單引號,動態(tài)字符串使用反引號
// bad let name = "zero" let myName = "my name is " + name // good let name = "zero" let myName = `my name is ${name}`
使用解構(gòu)賦值
使用數(shù)組或者對象給變量賦值的時(shí)候,使用解構(gòu)賦值
let arr = [1, 2, 3, 4] let obj = { name:"zero", age:18 } // bad let first = arr[0] let second = arr[1] let name = obj.name let age = obj.age // good let [first, second] = arr let {name,age} = obj
使用Object.assign
當(dāng)給對象賦多個(gè)值得時(shí)候,使用Object.assign
let obj = {} // bad obj.name = "zero" obj.age = 18 // good Object.assign(obj,{ name:"zero", age:18 })
函數(shù)參數(shù)
函數(shù)參數(shù)較多的情況,使用對象進(jìn)行傳參
// bad function Student(name,age,sex){ //... } // good let studentConfig = { name:"zero", age:18, sex:"man" } function Student(studentConfig){ //... }
封裝判斷條件
判斷條件過多的情況可以封裝成一個(gè)函數(shù)
// bad if(a===1 && b===2){ //... } // good function isTure(a,b){ return a===1 && b===2 } if(isTrue(a,b)){ //... }
其他
1.使用函數(shù)的默認(rèn)傳參來避免對函數(shù)參數(shù)的判斷
2.函數(shù)名要表達(dá)出函數(shù)是干什么的,比如 isEmail(),讓人一看就知道是判斷email的,而且返回值是布爾類型
3.對于數(shù)組,少用for循環(huán),Array.forEach,Array.every,Array.some,Array.map,Array.filter基本可以滿足for循環(huán)想得到的效果
以上就是平時(shí)比較常見的編程風(fēng)格,還有很多沒列出來,更多的請參考編程風(fēng)格
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/103508.html
摘要:同步發(fā)布于是個(gè)程序員都知道函數(shù),但是有些人不一定清楚函數(shù)式編程的概念。你的項(xiàng)目沒用到函數(shù)式編程,不代表項(xiàng)目不好。函數(shù)式編程的對立面就是命令式編程。函數(shù)式編程只是一個(gè)概念一致編碼方式,并沒有嚴(yán)格的定義。這里總結(jié)一些常用的函數(shù)式編程應(yīng)用場景。 同步發(fā)布于 https://github.com/xianshanna... 是個(gè)程序員都知道函數(shù),但是有些人不一定清楚函數(shù)式編程的概念。 應(yīng)用的迭...
摘要:最近讀完編寫可維護(hù)的,讓我受益匪淺,它指明了編碼過程中,需要注意的方方面面,在團(tuán)隊(duì)協(xié)作中特別有用,可維護(hù)性是一個(gè)非常大的話題,這本書是一個(gè)不錯(cuò)的起點(diǎn)。擴(kuò)展閱讀編寫可維護(hù)的歡迎來到石佳劼的博客,如有疑問,請?jiān)谠脑u論區(qū)留言,我會盡量為您解答。 最近讀完《編寫可維護(hù)的JavaScript》,讓我受益匪淺,它指明了編碼過程中,需要注意的方方面面,在團(tuán)隊(duì)協(xié)作中特別有用,可維護(hù)性是一個(gè)非常大的話...
摘要:入門的導(dǎo)語廢話最近兩年你要說函數(shù)式編程不火的話那是不可能的是人都知道函數(shù)式編程很火為什么函數(shù)式編程會火呢在于它的思想很強(qiáng)大很強(qiáng)勢尤其是前端的更是在上完全使用純函數(shù)函數(shù)式的好處漸漸被發(fā)掘出來筆者最近看了一些函數(shù)式方面的東東現(xiàn)在發(fā)出來給大家學(xué)習(xí) 0x00 入門的導(dǎo)語(廢話) 最近兩年你要說函數(shù)式編程不火的話, 那是不可能的, 是人都知道函數(shù)式編程很火.為什么函數(shù)式編程會火呢, 在于它的思想...
摘要:前端每周清單專注前端領(lǐng)域內(nèi)容,以對外文資料的搜集為主,幫助開發(fā)者了解一周前端熱點(diǎn)分為新聞熱點(diǎn)開發(fā)教程工程實(shí)踐深度閱讀開源項(xiàng)目巔峰人生等欄目。背后的故事本文是對于年之間世界發(fā)生的大事件的詳細(xì)介紹,闡述了從提出到角力到流產(chǎn)的前世今生。 前端每周清單專注前端領(lǐng)域內(nèi)容,以對外文資料的搜集為主,幫助開發(fā)者了解一周前端熱點(diǎn);分為新聞熱點(diǎn)、開發(fā)教程、工程實(shí)踐、深度閱讀、開源項(xiàng)目、巔峰人生等欄目。歡迎...
摘要:如果編輯器在編碼時(shí)實(shí)時(shí)給出反饋,對開發(fā)者個(gè)人而言才是最高效的,在提交時(shí)做強(qiáng)制檢查只是從團(tuán)隊(duì)的視角保證編碼風(fēng)格的規(guī)范性和一致性。 工欲善其事必先利其器,軟件工程師每天打交道最多的可能就是編輯器了。入行幾年來,先后折騰過的編輯器有 EditPlus、UltraEdit、Visual Studio、EClipse、WebStorm、Vim、SublimeText、Atom、VSCode,現(xiàn)在...
閱讀 965·2023-04-25 22:13
閱讀 2401·2019-08-30 15:56
閱讀 2287·2019-08-30 11:21
閱讀 712·2019-08-30 11:13
閱讀 2074·2019-08-26 14:06
閱讀 2027·2019-08-26 12:11
閱讀 2349·2019-08-23 16:55
閱讀 594·2019-08-23 15:30