加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

这些被同事喷的JS代码气魄威风凛凛你写过几多?

发布时间:2019-02-17 09:05:03 所属栏目:建站 来源:殷荣桧
导读:此刻写代码比早年许多几何了,代码的名目都有 eslint、prettier、babel(写新版语法) 这些来担保,然而,技妙本领再高端都不能办理代码可读性(代码可否被将来的本身和同事看懂)的题目,由于这个题目只有人本身才气办理。我们写代码要写到下图中左边这样根基上

NO:对付求值获取的变量,没有兜底。

  1. const MIN_NAME_LENGTH = 8;  
  2. let lastName = fullName[1];  
  3. if(lastName.length > MIN_NAME_LENGTH) { // 这样你就给你的代码乐成的埋了一个坑,你有思量过假如fullName = ['jackie']这样的环境吗?这样措施一跑起来就爆炸。要不你试试。  
  4.     ....  

YES:对付求值变量,做好兜底。

  1. const MIN_NAME_LENGTH = 8;  
  2. let lastName = fullName[1] || ''; // 做好兜底,fullName[1]中取不到的时辰,不至于赋值个undefined,至少尚有个空字符,从基础上讲,lastName的变量范例照旧String,String原型链上的特征都能行使,不会报错。不会酿成undefined。 
  3.  if(lastName.length > MIN_NAME_LENGTH) {  
  4.     ....  
  5. }  
  6. 着实在项目中有许多求值变量,对付每个求值变量都必要做好兜底。  
  7. let propertyValue = Object.attr || 0; // 由于Object.attr有也许为空,以是必要兜底。  
  8. 可是,赋值变量就不必要兜底了。  
  9. let a = 2; // 由于有底了,以是不要兜着。  
  10. let myName = 'Tiny'; // 由于有底了,以是不要兜着。 

二、函数相干

(1)函数定名

NO:从定名无法知道返回值范例

  1. function showFriendsList() {....} // 此刻问,你知道这个返回的是一个数组,照旧一个工具,照旧true or false。你能答的上来否?你能答得上来我请你吃松鹤楼的满汉全席还请你不要卖力。 

Yes:对付返回true or false的函数,最好以should/is/can/has开头

  1. function shouldShowFriendsList() {...}  
  2. function isEmpty() {...}  
  3. function canCreateDocuments() {...}  
  4. function hasLicense() {...} 

(2)成果函数最好为纯函数

NO: 不要让成果函数的输出变革无常。

  1. function plusAbc(a, b, c) {  // 这个函数的输出将变革无常,由于api返回的值一旦改变,同样输入函数的a,b,c的值,但函数返回的功效却不必然沟通。  
  2.         var c = fetch('../api');  
  3.         return a+b+c;  

YES:成果函数行使纯函数,输入同等,输出功效永久独一

  1. function plusAbc(a, b, c) {  // 同样输入函数的a,b,c的值,但函数返回的功效永久沟通。  
  2.         return a+b+c;  

(3)函数传参

NO:传参无声名

  1. page.getSVG(api, true, false); // true和false啥意思,一目不了然 

YES: 传参有声名

  1. page.getSVG({  
  2.     imageApi: api,  
  3.     includePageBackground: true, // 一览无余,知道这些true和false是啥意思  
  4.     compress: false,  
  5. }) 

(4)举措函数要以动词开头

NO: 无法分辨函数意图

  1. function emlU(user) {  
  2.     ....  

YES:动词开头,函数意图就很明明

  1. function sendEmailToUser(user) {  
  2.     ....  

(5)一个函数完成一个独立的成果,不要一个函数稠浊多个成果

这是软件工程中最重要的一条法则,当函数必要做更多的工作时,它们将会更难举办编写、测试、领略和组合。当你能将一个函数抽离出只完成一个举措,他们将可以或许很轻易的举办重构而且你的代码将会更轻易阅读。假如你严酷遵守本条法则,你将会领先于很多开拓者。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读