Open jackiewillen opened 5 years ago
lastName.lenght
应当修改为 lastName.length
将原文中有关 lastName.lenght > MIN_NAME_LENGTH
的部分替换成 lastName.length > MIN_NAME_LENGTH
标题部分 "三、尽量使用ES6... " 没有使用 md 语法定义标题
lastName.lenght
应当修改为lastName.length
将原文中有关
lastName.lenght > MIN_NAME_LENGTH
的部分替换成lastName.length > MIN_NAME_LENGTH
已修正,谢谢
标题部分 "三、尽量使用ES6... " 没有使用 md 语法定义标题
用了,可能编辑器显示不同。
以下是我遇到的情况:
deOp
,谁能告诉我这是什么鬼if
语句,可读性很差,随便摘一段
if (res.status == 401 || res.status == 403) this.$router.push({ path: "/login" }); // session过期
else if (res.status == 500) alert("请求出现问题,请联系技术人员!");
// else if (res.status == 400) throw res.data.message; //400 看小姑娘前端有一些额外的处理(先保留吧)←←这是我之前的同事留下的注释,哈哈
else if (res.status == 400) {}
else alert("对不起,请求错误,请重新请求哦!");
殷荣桧老师,您好,我是InfoQ的技术编辑,在GitHub上看到您写的这篇《看看这些被同事喷的JS代码风格你写过多少》,觉得非常好,想转载发布在InfoQ旗下公众号前端之巅和InfoQ官网上,我们会标明作者和GitHub链接,不知您是否准许(没找到您的邮箱,所以只能在这里留言)?
殷荣桧老师,您好,我是InfoQ的技术编辑,在GitHub上看到您写的这篇《看看这些被同事喷的JS代码风格你写过多少》,觉得非常好,想转载发布在InfoQ旗下公众号前端之巅和InfoQ官网上,我们会标明作者和GitHub链接,不知您是否准许(没找到您的邮箱,所以只能在这里留言)?
@qinyun1994 可以的,谢谢。
好文, 把开发中遇到的不好的代码习惯汇总到了一起, 并给出最佳实践,共勉。ps:把意思表达清楚是一种能力。向你学习。
好文, 把开发中遇到的不好的代码习惯汇总到了一起, 并给出最佳实践,共勉。ps:把意思表达清楚是一种能力。向你学习。
@nelhu 谢谢鼓励。
您好,我可以转载这篇文章到公众号【高级前端进阶】吗? 我会声明原作者和本文链接。谢谢!
您好,我可以转载这篇文章到公众号【高级前端进阶】吗? 我会声明原作者和本文链接。谢谢!
@yygmind 可以的,谢谢
好文!算了算已经写了快2年的前端代码了,但是还会犯文中提到的错误,长知识了~
好坏对比,简洁清楚,好文章
好坏对比,简洁清楚,好文章
@bingozhu0197 谢谢鼓励
(6)优先使用命令式 → 声明式编程
命令式编程经常使用语句并依赖于导致突变的低级功能,而声明式编程则强烈关注抽象和纯度。
(6)优先使用命令式 → 声明式编程
命令式编程经常使用语句并依赖于导致突变的低级功能,而声明式编程则强烈关注抽象和纯度。 @code-coder 已修正
1.可以增加优先使用const
2.示例中有些地方使用的是var
,既然文章提倡使用新语法,那么示例代码使用let
或者const
更好
Thanks for sharing!
1.针对函数执行时的条件退出,一般提前进行return,然后执行函数后面的逻辑,这样使流程更加清晰和优雅。
function add(a, b) { if (typeof a !== "number" || typeof b !== "number") { console.warn("params error !"); return; } return a + b; }
作者:殷荣桧@腾讯
目录:
一、变量相关
二、函数相关
三、尽量使用ES6,有可以能的话ES7中新语法
现在写代码比以前好多了,代码的格式都有eslint,prettier,babel(写新版语法)这些来保证,然而,技术手段再高端都不能解决代码可读性(代码能否被未来的自己和同事看懂)的问题,因为这个问题只有人自己才能解决。我们写代码要写到下图中左边这样基本上就功德圆满了。
一、变量相关
(1)变量数量的定义
NO:滥用变量:
YES: 数据只使用一次或不使用就无需装到变量中
(2)变量的命名
NO:自我感觉良好的缩写
YES:无需对每个变量都写注释,从名字上就看懂
(3)特定的变量
NO:无说明的参数
YES:添加变量
(4)变量的命名
NO:命名过于啰嗦
YES: 做到简洁明了
(5)使用说明性的变量(即有意义的变量名) NO:长代码不知道啥意思
YES:用变量名来解释长代码的含义
(6)避免使用太多的全局变量
NO:在不同的文件不停的定义全局变量
YES:少用或使用替代方案 你可以选择只用局部变量。通过(){}的方法。
(7) 变量的赋值。
NO:对于求值获取的变量,没有兜底。
YES:对于求值变量,做好兜底。
二、函数相关
(1)函数命名
NO:从命名无法知道返回值类型
Yes: 对于返回true or false的函数,最好以should/is/can/has开头
(2) 功能函数最好为纯函数
NO: 不要让功能函数的输出变化无常。
YES:功能函数使用纯函数,输入一致,输出结果永远唯一
(3)函数传参
NO:传参无说明
YES: 传参有说明
(4)动作函数要以动词开头
NO: 无法辨别函数意图
YES:动词开头,函数意图就很明显
(5)一个函数完成一个独立的功能,不要一个函数混杂多个功能
这是软件工程中最重要的一条规则,当函数需要做更多的事情时,它们将会更难进行编写、测试、理解和组合。当你能将一个函数抽离出只完成一个动作,他们将能够很容易的进行重构并且你的代码将会更容易阅读。如果你严格遵守本条规则,你将会领先于许多开发者。
NO:函数功能混乱,一个函数包含多个功能。最后就像能以一当百的老师傅一样,被乱拳打死(乱拳(功能复杂函数)打死老师傅(老程序员))
YES: 功能拆解,
(6)优先使用声明式编程
NO: 使用for循环编程
YES:使用声明式编程
(7) 函数中过多的采用if else ..
No: if else过多
YES: 可以使用switch替代或用数组替代
三、尽量使用ES6,有可以能的话ES7中新语法(只罗列最常用的新语法,说实话,有些新语法不怎么常用)
(1)尽量使用箭头函数
NO:采用传统函数
YES:使用箭头函数
(2)连接字符串
NO:采用传统+号
YES:采用模板字符
(3) 使用解构赋值
NO:使用传统赋值:
YES:使用结构赋值:
(4) 尽量使用类class
NO: 采用传统的函数原型链实现继承
YES:采用ES6类实现继承
先写到这了,这是目前为止发现的问题,这篇文章中并没有完全覆盖到常见的写代码的不好的习惯,所以你如果觉的有需要补充的,都可以在文章下方评论,或者直接到我的Github的这篇文章中评论。对于有用的,都将补充到我的掘金和Github中去。同时,你如果觉的文章写得还可以,Please在我的Github中送上你宝贵的Star,你的Star是我继续写文章最大的动力。