笔者菜鸟里最不会飞的那个,所以这些基础的习惯都没养成,正好抽时间特意做个笔记以方便自己规范代码, 有兴趣的大佬多多指点.

养成好的编码习惯收益良多, 总结下编码时应注意的细节《借鉴高程里代码约束》,对了默默吐槽下,说是前端不需要英语基础的那些机构们真的是为了钱失了智;

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 示例代码

笔记这么多.慢慢培养了;

最新文章

  1. Jsoup 使用教程:输入
  2. rocksdb编译测试的正确姿势
  3. nyoj 28 大数阶乘
  4. webpack对样式的处理
  5. log4net 总结
  6. js函数语法
  7. Oracle EBS 预警系统管理
  8. ORALCE 编译过程卡死解决方法。
  9. html标签的嵌套规则分析
  10. 自写JS分页工具【基于JQ】
  11. play framework 笔记
  12. 如何实现javascript js 类命名空间的写法
  13. Centos7基于容器安装运行Docker私有仓库及添加认证
  14. 主机ping不通virtualbox虚拟机的解决办法
  15. 内存和CPU资源控制
  16. js常用用途
  17. 51nod 1785 数据流中的算法 | STL的应用
  18. Docker CE部署
  19. linux lcd设备驱动剖析三
  20. 性能调试工具——oprofile

热门文章

  1. html:class名命名规范
  2. ArcGIS自定义工具箱-列举损坏的数据源
  3. SVN中英文菜单对照
  4. chart.js应用中遇到的问题
  5. MFC笔记10
  6. 查看oracle的执行计划
  7. Swagger使用
  8. 《Network Security A Decision and Game Theoretic Approach》阅读笔记
  9. 突然发现用PHP做多条件模糊查询很简单
  10. Linux 网络配置文件解析