鱼C论坛

 找回密码
 立即注册
查看: 2641|回复: 17

[庖丁解牛] 0 2 3 9 ★ JS 函数编写的#4条心法

[复制链接]
发表于 2019-1-21 17:09:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 不二如是 于 2020-3-30 15:58 编辑




                               
登录/注册后可看大图


今天给鱼油科普几个 JavaScript 函数的编写原则,之前写过一个长文:解读Google's JS 代码规范

这次只是几个简单但很实用的小技巧,通过糟糕秀儿的代码演示进行对比。

总共是 5 条,列一个提纲,鱼油按需阅读即可:
游客,如果您要查看本帖隐藏内容请回复





1、删除弃用代码

在项目中,有些代码可能我们已经注释掉了,但是担心以后会重用,有点舍不得删除。

如果这样,这些代码可能永远都放在那里,建议立马删除掉。

因为我们也可以在代码库历史版本中找到它。




2、不要随便优化

我们通常使用的现代浏览(Chrome、Safari、Firefox)已经做了很多引擎优化。

比如下面例子所示,在老的浏览器中由于list.length没有做缓存,每次迭代都会计算,造成不必要的开销:
  1. // 糟糕
  2.         for(var i = 0 , len = list.length ; i < len ; i++){
  3.             // 操作
  4.         }
  5.         
  6.         // 秀儿
  7.         for(var i = 0 ; i < list.length ; i++){
  8.             // 操作
  9.         }
复制代码





3、少用“非”条件句

用了太多非,除了炫耀自己的逻辑好,感觉很给别人添麻烦。

就像简单的一句话:我是小可爱,非要加“非”,我不是一个小可爱才怪...

上代码:
  1. // 糟糕
  2.         function isKeyDomPre(node){
  3.             //...
  4.         }

  5.         if(! isKeyDomPre(node)){
  6.             //...
  7.         }

  8.         // 秀儿
  9.         function keyDomPre(node){
  10.             
  11.         }
  12.         if(keyDomPre(node)){
  13.             
  14.         }
复制代码





4、不要传 flag 参数

通常情况下,保证一个函数只干一件事,是最好滴。

传入多个行参,想干很多事情,很不适合后期维护:
  1. // 糟糕
  2.         function superFunction(sum,result,name){
  3.             if(sum){
  4.                 //...
  5.                 if(name){
  6.                     //...
  7.                 }
  8.             }
  9.             else{
  10.                 return result;
  11.             }
  12.         }

  13.         // 秀儿
  14.         function addFun(sum,result){}

  15.         function showName(name){}
复制代码



                               
登录/注册后可看大图








如果喜欢,别忘了评分


                               
登录/注册后可看大图


这位鱼油,如果喜欢本系列Js帖子,请订阅 专辑 -->传送门)(不喜欢更要订阅

评分

参与人数 2荣誉 +1 鱼币 +1 贡献 +4 收起 理由
睦ちゃん她爹 + 3
freeulove + 1 + 1 + 1 感谢不二老师

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-2-10 14:06:34 | 显示全部楼层
1111111
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-16 18:02:13 | 显示全部楼层
第五条呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-8 15:04:35 | 显示全部楼层
努力学习中
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-14 23:11:38 | 显示全部楼层
回复
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-5-22 17:18:23 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-31 10:35:26 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-9-23 21:00:58 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-30 15:03:51 | 显示全部楼层
牛逼啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-5 09:28:47 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-12 10:56:08 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-23 16:06:16 | 显示全部楼层
2
2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-13 08:21:30 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-12-28 16:27:47 | 显示全部楼层
q
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-9-16 12:44:26 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-8 20:43:58 | 显示全部楼层
ilovefishc
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-14 15:26:34 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-8-25 18:32:09 | 显示全部楼层
?????
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 20:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表