web开发之菜鸟的代码规范
笔者菜鸟里最不会飞的那个,所以这些基础的习惯都没养成,正好抽时间特意做个笔记以方便自己规范代码, 有兴趣的大佬多多指点.
养成好的编码习惯收益良多, 总结下编码时应注意的细节《借鉴高程里代码约束》,对了默默吐槽下,说是前端不需要英语基础的那些机构们真的是为了钱失了智;
a .命名约束:匈牙利命名/驼峰命名/帕斯卡命名法
匈牙利命名:此命名方法可细分为系统匈牙利命名法和匈牙利应用命名法。
-> 语法:变量名 = 类型 + 描述
->约定类型:
a --- array
o --- object
s --- string
l --- float
fn --- function
i --- int
r --- regular
b --- boolean
驼峰命名(小驼峰命名法):第一个单词以小写字母开始,后面的所有单词的首字母都采用大写字母;
帕斯卡命名(大驼峰命名法):每一个单字的首字母都大写;
1.变量命名: 名词
2.方法命名: 动词
->常见动词约定:
can --- 判断是否可执行某个动作
has --- 判断是否有某个值
is --- 判断是否为某个值
get --- 获取某个值
set --- 设置某个值
load --- 加载一些数据
3.特殊函数/变量非硬性约定命名:
1): 常量:全部大写单词之间用"_"划分;
2): 构造函数: 大驼峰命名;
3): 私有成员(属性/方法): 以"_"为前缀;
b. 编码非硬性原则:
1.事件Event对象不传递, 如有需要只传需要的数据即可;
2.应用层逻辑可以不依赖任何行为进行;
3.事件层只处理事件;
4.代码职责单一 ;
5.尊重对象所有权即只修改自己创建的对象;
6.避免全局变量;
c. 代码性能
0.避免全局查找与尽量减少查找作用域链长度;
1.不直接使用eval而是间接使用;.
2.with,setTimeout第一个参数字符形式,Function 避免使用;
3.循环优化
->减值迭代
->简化终止条件
->简化循环体
->尽量使用后测试循环即 do-while
4.最小化语句数;
5.对数值操作位运算更快;
6.优化dom操作(这块有很多东西需要研究一时半会也就不分享了);
7.避免使用混合比较"==”;
8.js分号的自动插入规则:
1.在一行/一个代码块/一段程序结束
2.在随后的输入标记不能解析时
3.for循环中的分号不会自动补全
9.永远不去修改arguments对象
10、不对函数使用toString()方法获取源码;
function(y){
return x+y;
}.bind(16).toString();
//function () { [native code] }
因为bind由宿主环境提供的,在宿主环境下是没有js源代码可以显示, 而ecma标准是允许js引擎改变toString()的输出;
11.不使用__proto__的修改任何属性
12. 循环中避免修改值
13.迭代优于循环;
14.有序集合优先用数组
15.不在prototype对象上增加可枚举属性;
16.不过度使用强制类型转换
17.不在同步方法中调用异步回调;
d:代码注释常用标识符:
1.@author 程序的作者说明
2.@version 源文件的版本说明
3.@param 方法的参数说明
4.@deprecated 不建议的使用方法
5.@return 方法的返回值的说明信息
6.@see 参见,用于指定参考内容
7.@exception 抛出的异常类型
8.@throws 抛出的异常
9.@example 示例代码
笔记这么多.慢慢培养了;
web开发之菜鸟的代码规范的更多相关文章
- 团队开发前端VUE项目代码规范
团队开发前端VUE项目代码规范 2018年09月22日 20:18:11 我的小英短 阅读数 1658 一.规范目的: 统一编码风格,命名规范,注释要求,在团队协作中输出可读性强,易维护,风格一致 ...
- 【Android 应用开发】 Android 相关代码规范 更新中 ...
. 简介 : Android 常用的代码结构, 包括包的规范, 测试用例规范, 数据库模块常用编写规范; 参考 : 之前写的一篇博客 [Android 应用开发] Application 使用分析 ; ...
- React Native开发的一种代码规范:Eslint + FlowType
[这篇随笔记录的很简单,没有涉及具体的Eslint规则解释以及FlowType的类型说明和使用等,只是链接了所需的若干文档] js开发很舒服,但是代码一多起来就参差不齐,难以阅读了.所以加上一些代码规 ...
- 移动Web开发,4行代码检测浏览器是否支持position:fixed
不废话,直接上代码 var div = document.createElement('div'); div.style.cssText = 'display:none;position:fixed; ...
- iPhone开发:Objective C 代码规范-iOS总结版
一,关于空行 A:.h中的空行 1,文件说明与头文件包涵(#import)之间空1行 2,头文件包涵(#import)之间,如果需要分类区别,各类别之间空1行 3,头文件包涵(#import)与@cl ...
- JavaScript开发中常用的代码规范配置文件
一.jsconfig.json { compilerOptions: { target: 'es6', experimentalDecorators: true, allowSyntheticDefa ...
- 几款web开发常用jquery特效代码
特效网:http://www.xwcms.net 1.图片拖动特效http://www.xwcms.net/js/tpdm/32946.html2.弹出层焦点图特效:http://www.xwcms ...
- C# Web开发打开下载对话框代码
一个按钮的事件中写: string filename = Sever.UrlEncode("词库.txt"); Response.AddHeader("Content-D ...
- 开发一个项目之代码规范ESLint
ESLint{ "rules": { "semi": ["error", "always"], } }error lev ...
随机推荐
- 部署一个基于python语言的web发布环境
---恢复内容开始--- 1) 一门面向对象的语言 2)拥有丰富的库 3)可移植性 4)免费.开源 5)简单易易学 可做软件开发.人工智能.web开发等等 部署流程: Cnetos7.5+Nginx+ ...
- python 的包的导入
已经写过一篇包的导入了,最近又遇到了点问题,所以想把这些再搞的明白点就又试了试 代码结构如下 在test目录下,有Admin包,home包,在home下有它的子包foo 各个文件代码如下 admins ...
- SQL Server与MySQL在“存在则更新,不存在则插入”并发处理上的一些差异。
“存在则更新,不存在则插入的逻辑”并发情况下的处理 在sqlserver中: 在sqlserver中,是通过可序列化隔离级别+排它锁的方式来锁定一个范围来实现的当前锁定一个不存在的记录的时候,sqls ...
- Python:Fintech产品的第一语言
来源商业新知,原标题:为什么说Python是Fintech与金融变革的秘密武器 人生苦短,不止程序员,Python正在吸引来自金融领域大佬们的青睐目光. 金融科技的风口下,无数传统金融人都想从中掘一桶 ...
- MFC---关于string.h相关函数
1.在VS2005中使用strcpy.strcat.sprintf出现如:mfc中'strcpy' was declared deprecated警告 这是因为VS2005中认为CRT中的一组函数如果 ...
- OpenStack 安装:keystone服务
在前面的章节里面,我们配置了基本环境,也安装keystone服务,并且创建了keystone的数据库,在这一篇里面,我们说怎么配置keystone. 首先编辑keystone服务,需要修改如下数据 编 ...
- 如何编写Window服务程序(C# )
虚拟需求:编写一个Window服务,并注册到操作系统的服务里.让他隔30秒运行一下(写当前日期到一个文本里) 步骤: 创建一个Window 窗体应用程序项目(Greatwall.Mes.Windows ...
- 加NONCLUSTERED INDEX索引,在ON了之后还要INCLUDE
之前加了索引,但效果不大 SET STATISTICS TIME ON --执行时间 SET STATISTICS IO ON --IO读取 DBCC DROPCLEANBUFFERS --清除缓冲区 ...
- SQL Server 2000使用链接服务器
执行:安装盘\SQL2KSP4\install\instcat.sql 文件下载地址:http://download.csdn.net/detail/taomanman/5680765
- 3U - 算菜价
妈妈每天都要出去买菜,但是回来后,兜里的钱也懒得数一数,到底花了多少钱真是一笔糊涂帐.现在好了,作为好儿子(女儿)的你可以给她用程序算一下了,呵呵. Input 输入含有一些数据组,每组数据包括菜种( ...