js命名应遵循 简洁、语义化 的原则

一、变量

命名方法: 小驼峰式命名法
命名规范:前缀为形容词 (函数前缀为动词, 以此来区分函数和变量)

1
2
3
4
5
6
//好的命名方式
let maxCount = 10;
let tableTitle = '啦啦啦';
//不好的命名方式
let setConut = 10;
let getTitle = '啦啦啦';

临时变量

1:作用域不大临时变量可以简写,比如:strnumbolobjfunarr
2:循环变量可以简写,比如:ijk等。

  • s:表示字符串。例如:sName,sHtml;
  • n:表示数字。例如:nPage,nTotal;
  • b:表示逻辑。例如:bChecked,bHasLogin;
  • a:表示数组。例如:aList,aGroup;
  • r:表示正则表达式。例如:rDomain,rEmail;
  • f:表示函数。例如:fGetHtml,fInit;
  • o:表示以上未涉及到的其他对象,例如:oButton,oDate;
  • g:表示全局变量,例如:gUserName,gLoginTime;

二、常量

某些作为不允许修改值的变量认为是常量,常量可以存在于函数中,也可以存在于全局。

命名方法:名词全部大写
命名规范:使用大写字母和下划线来组合命名,下划线用来分割单词。

1
2
const MAX_COUNT = 10;
const URL = '//www.huifenqi.com';

三、函数 & 方法

命名方法: 小驼峰式命名法
命名规范: 前缀应该为动词
命名建议:常用动词约定

  • get 获取/set 设置/add 增加/remove 删除/create 创建/destory 移除

  • start 启动/stop 停止/open 打开/close 关闭/read 读取/write 写入

  • load 载入/save 保存/create 创建/destroy 销毁

  • begin 开始/end 结束/backup 备份/restore 恢复/detach 脱离

  • import 导入/export 导出/split 分割/merge 合并/inject 注入/extract 提取

  • attach 附着/bind 绑定/separate 分离/ view 查看/browse 浏览

  • edit 编辑/modify 修改/select 选取/mark 标记/copy 复制/paste 粘贴/undo 撤销

  • redo 重做/insert 插入/delete 移除/add 加入/append 添加

  • clean 清理/clear 清除/index 索引/sort 排序/find 查找/search 搜索/

  • increase 增加/decrease 减少/play 播放/pause 暂停/

  • launch 启动/run 运行/pack 打包/unpack 解包/parse 解析/emit 生成

  • compile 编译/execute 执行/debug 调试/trace 跟踪

  • observe 观察/listen 监听/build 构建/publish 发布/push 推/pull

  • input 输入/output 输出/encode 编码/decode 解码

  • expand 展开/collapse 折叠/encrypt 加密/decrypt 解密

  • compress 压缩/decompress 解压缩

  • connect 连接/disconnect 断开/send 发送/receive 接收

  • download 下载/upload 上传/refresh 刷新/synchronize 同步

  • update 更新/revert 复原/lock 锁定/unlock 解锁

  • check out 签出/check in 签入/submit 提交/commit 交付

  • begin 起始/end 结束/start 开始/finish 完成/enter 进入/exit 退出

  • abort 放弃/quit 离开/obsolete 废弃/depreciate 废旧

  • collect 收集/aggregate 聚集

  • can 判断是否可执行某个动作

  • has 判断是否含义某个值

  • is 判断是否为某个值

1
2
3
4
// 是否可阅读
function canRead() {}
// 获取名称
function getName() {}

四、类 & 构造函数

命名方法:大写驼峰式命名法,首字母大写。
命名规范:前缀为名称。

1
2
3
4
5
6
7
class Persion {
constructor(name) {
...
}
}

let person = new Person('啦啦啦');

五、类的成员

类的成员包括:

公共属性和方法: 跟变量和函数命名一样。
私有属性和方法:前缀为下划线_, 后面跟公共属性和方法一样的命名方式。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Person {
// 私有属性
_name: string;
constructor() { }

// 公共方法
getName() {
return this._name;
}
// 公共方法
setName(name) {
this._name = name;
}
}