js函数命名规则

方法命名规范

核心命名规则

  1. 命名格式‌。
    • 采用小驼峰式命名(首字母小写,后续单词首字母大写),例如:calculateTotalPrice()。‌‌‌‌2
    • 禁止使用下划线(如get_name)或全大写格式(如GETNAME)。‌‌2‌‌3
  2. 动词前缀规范‌。
    • 函数名称应使用动词或动词短语开头,明确表示操作方法,例如:getUser()setValue()。‌‌‌‌1
    • 常用动词前缀参考表:
前缀 用途说明 示例
get 获取数据 getUserName()
set 设置数据 setTimeout()
is 判断布尔状态 isVisible()
can 判断权限或能力 canEdit()
load 加载资源 loadData()
has 检查包含关系 hasPermission()‌‌
on 事件方法 onClick()
handle 事件方法 handleClick()
show 显示弹框方法 showWindow()
hide 隐藏弹框方法 hideWindow()
callback 回调数据方法 callbackData
  1. 布尔函数特殊要求
  • 返回布尔值的函数需要以ishascan等开头,例如:isAdmin()hasDuplicate()。‌‌

  • 变量命名

    js
    // 好的变量命名
    let userName = 'JohnDoe';
    let totalCount = 42;
    let isActive = true;
     
    // 不好的变量命名
    let UserName = 'JohnDoe'; // 首字母不应大写
    let total_count = 42;     // 不应使用下划线
    let isactive = true;      // 缺乏可读性
  • 常量命名

    js
    // 好的常量命名
    const MAX_USERS = 100;
    const API_BASE_URL = 'https://api.example.com';
    const PI = 3.14159;
     
    // 不好的常量命名
    const maxUsers = 100;    // 应全大写
    const apiBaseUrl = '...'; // 同上
  • 函数命名

    js
    // 好的函数命名
    function calculateTotalPrice() {
      // ...
    }
     
    function getUserById(id) {
      // ...
    }
     
    // 不好的函数命名
    function total_price() {  // 使用下划线
      // ...
    }
     
    function user() {        // 名词,不表示动作
      // ...
    }
  • 布尔值命名

    js
    // 好的布尔命名
    let isLoggedIn = true;
    let hasPermission = false;
    let canEdit = true;
     
    // 不好的布尔命名
    let loggedIn = true;    // 缺少前缀
    let permission = false; // 同上
  • 数组命名

    js
    // 好的数组命名
    let users = ['John', 'Jane', 'Bob'];
    let colorList = ['red', 'green', 'blue'];
    let numberArray = [1, 2, 3];
     
    // 不好的数组命名
    let user = ['John', 'Jane']; // 单数形式
  • 私有成员命名

    js
    class User {
      constructor(name) {
        this._name = name; // 私有属性
      }
      
      _privateMethod() {   // 私有方法
        // ...
      }
      
      getName() {
        return this._name;
      }
    }
  • 类命名

    js
    // 好的类命名
    class UserAccount {
      constructor() {
        // ...
      }
    }
     
    class ShoppingCart {
      constructor() {
        // ...
      }
    }
     
    // 不好的类命名
    class userAccount {  // 首字母小写
      // ...
    }
  • 模块命名

    js
    // 好的模块文件名
    user-account.js
    shopping-cart.js
    api-utils.js
     
    // 不好的模块文件名
    UserAccount.js  // 与类名冲突
    shoppingCart.js // 不使用驼峰式
  • 事件处理函数命名

    js
    // 好的事件处理命名
    function handleClick() {
      // ...
    }
     
    function onSubmit() {
      // ...
    }
     
    // 不好的事件处理命名
    function click() {  // 不明确
      // ...
    }
  • 避免缩写

    js
    // 好的命名
    let customerAddress = '123 Main St';
    let userId = 42;
     
    // 不好的命名
    let custAddr = '123 Main St'; // 过度缩写
    let uId = 42;                // 同上
  • 保持一致性

    js
    // 保持一致的命名风格
    function fetchUserData() {
      // ...
    }
     
    function updateUserProfile() {
      // ...
    }
     
    // 不一致的命名风格
    function getuser() {  // 风格不一致
      // ...
    }
     
    function UpdateProfile() { // 首字母大写
      // ...
    }
  • 描述性命名

    js
    // 描述性命名
    function calculateMonthlyPayment(principal, years, rate) {
      // ...
    }
     
    let daysSinceLastLogin = 5;
     
    // 非描述性命名
    function calc(a, b, c) {  // 参数意义不明
      // ...
    }
     
    let dsl = 5;             // 缩写无意义

与其他命名的区分

  • 与变量命名差异‌:变量使用名词前缀(如userName),而函数必须使用动词前缀(如getUserName)以示区别。‌‌
  • 与类命名差异‌:类名使用大驼峰式(如UserModel),函数名使用小驼峰式。‌‌

最佳实践建议

  • 避免冗余命名‌:如getUserData()简化为fetchUser(),去除重复语义。‌
  • 保持简洁性‌:函数名长度需平衡描述性和简洁性,例如calcTotal()优于calculateTotalAmountOfOrder()。‌‌

Api 接口命名规则

js
// 查询【请填写功能名称】列表
listArticle

// 查询【请填写功能名称】详细
getArticle

// 新增【请填写功能名称】
addArticle

// 修改【请填写功能名称】
updateArticle

// 删除【请填写功能名称】
delArticle
备案号: 湘ICP备2021015274号-3