javascript 代碼風(fēng)格規(guī)范

避免使用默認(rèn)導(dǎo)出

  • 默認(rèn)導(dǎo)出需要自己重命名冀宴,會(huì)讓人混淆牺蹄。
  • 改成這樣:
import  {  HomeApi  }  from  "./home.api";

使用 index.js 統(tǒng)一文件夾下的導(dǎo)出稠歉。

  • 示例:
import  { homeActions }  from  "../../home/home-utils/home.actions";

import  { routeUtils }  from  "../../../utils/route.utils";

import  { homeTypes }  from  "../../home/home.typings";
  • 改成這樣:
import  { homeActions, homeTypes }  from  "../../home";

import  { routeUtils }  from  "../../../utils";

同類(lèi)處理函數(shù)包裝成對(duì)象

  • 示例:

// utils.js

const  formatTimeSlots  =  ()  =>  {};

const  updateTimeSlots  =  ()  =>  {};

const  createTimeSlots  =  ()  =>  {};

//file.js

import  { formatTimeSlots, createTimeSlots, updateTimeSlots }  from  "./utils";

  • 改成這樣:

// utils.js

const utils =  {

  formatTimeSlots:  ()  =>  {},

  updateTimeSlots:  ()  =>  {},

  createTimeSlots:  ()  =>  {},

};

//file.js

import  { utils }  from  "./utils";

  • 或者可以這么導(dǎo)入:

import  *  as utils from  "./utils";

跨層級(jí)太多盡量使用別名

  • 示例:

import  {  User  }  from  "../../../scenes/Account/User";

import  {  THEME_COLOR  }  from  "../../constants/theme";

import  { getUser }  from  "../services/userServices";

  • 改成這樣:

import  {  User  }  from  "@scenes/Account/User";

import  {  THEME_COLOR  }  from  "@constants/theme";

import  { getUser }  from  "@services/userServices";

布爾值變量方法需要以 is 開(kāi)頭

const isCompleted =  true;

const  isValidUser  =  (user)  =>  !!user;

常量變量總是大寫(xiě)

const  NEW_MODE  =  "New Mode";

const  GOOGLE_KEY  =  "1da541ac298";

const  IS_PRODUCTION  = process.env.NODE_ENV  ===  "production";

使用少量變量讓可讀性更好

  • 示例:

const result =  (income - expenses)  - income > expenses *  2  ? income *  0,25:  0;
  • 改成這樣:

const value = income - expenses;

const isUseTaxes = income > expenses *  2;

const taxes = isUseTaxes ? income *  0,25  :  0;

const result = value - taxes;

盡量將對(duì)象解構(gòu)出來(lái)使用

  • 示例:
setState({

 account:  `${response.user.name}  ${response.user.surname}`,

 photo: response.user.photo,

 options: response.options,

});
  • 改成這樣:

const  { user, options }  = response;

// two times if needed

const  { name, surname, photo }  = user;

setState({

 account:  `${name}  ${surname}`,

 photo,

 options,

});

合理使用簡(jiǎn)短的三元表達(dá)式替代 if

  • 示例:

if  (isCompleted)  {

  return  method();

}

return  null;
  • 改成這樣:

return isCompleted ?  method()  :  null;

合理構(gòu)造對(duì)象來(lái)代替多個(gè) if

  • 示例:
const response =  await api.fetchData();

if  (response.message  ===  "saved")  {

  /* ... */

}

if  (response.message  ===  "updated")  {

  /* ... */

}

if  (response.message  ===  "error")  {

  /* ... */

}
  • 改成這樣:

  const responseHandleMap =  {

  saved:  ()  =>  /* ... */,

  updated:  ()  =>  /* ... */,

  error:  ()  =>  /* ... */

  }

  /* ... */

  const response =  await api.fetchData();

 responseHandleMap[response.message]();

使用 async / await 替代 then / catch

  • 示例:

getUserInfo()

  .then(({ user, options })  =>  {

  /* ... */

  })

  .catch((e)  =>  {

  /* ... */

  });
  • 改成這樣:

request  =  async  ()  =>  {

  try  {

  const  { user, options }  =  await  getUserInfo();

  /* ... */

  }  catch  (e)  {

  /* ... */

  }

};
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市述暂,隨后出現(xiàn)的幾起案子晃财,更是在濱河造成了極大的恐慌叨橱,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件断盛,死亡現(xiàn)場(chǎng)離奇詭異罗洗,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)钢猛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)伙菜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人命迈,你說(shuō)我怎么就攤上這事贩绕』鸬模” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵淑倾,是天一觀的道長(zhǎng)馏鹤。 經(jīng)常有香客問(wèn)我,道長(zhǎng)娇哆,這世上最難降的妖魔是什么湃累? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮迂尝,結(jié)果婚禮上脱茉,老公的妹妹穿的比我還像新娘。我一直安慰自己垄开,他們只是感情好琴许,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著溉躲,像睡著了一般榜田。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上锻梳,一...
    開(kāi)封第一講書(shū)人閱讀 51,301評(píng)論 1 301
  • 那天箭券,我揣著相機(jī)與錄音,去河邊找鬼疑枯。 笑死辩块,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的荆永。 我是一名探鬼主播废亭,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼具钥!你這毒婦竟也來(lái)了豆村?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤骂删,失蹤者是張志新(化名)和其女友劉穎掌动,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體宁玫,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡粗恢,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了欧瘪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片眷射。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出凭迹,到底是詐尸還是另有隱情罚屋,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布嗅绸,位于F島的核電站脾猛,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏鱼鸠。R本人自食惡果不足惜猛拴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蚀狰。 院中可真熱鬧愉昆,春花似錦、人聲如沸麻蹋。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)扮授。三九已至芳室,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間刹勃,已是汗流浹背堪侯。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留荔仁,地道東北人伍宦。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像乏梁,于是被迫代替她去往敵國(guó)和親次洼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354