当前位置: 首页 > news >正文

javaScript变量命名规则

一、硬性规则(必须遵守,否则会报错)

这些是 JavaScript 语法强制要求的规则,违反会导致程序无法运行。

  1. 可以包含的字符

    • 字母(a-z, A-Z)
    • 数字(0-9)
    • 下划线(_
    • 美元符号($
  2. 首字符规则

    • 不能以数字开头。变量名的第一个字符必须是字母、下划线(_)或美元符号($)。
    let name;    // ✅ 正确
    let _private; // ✅ 正确
    let $element; // ✅ 正确
    let 2fast;    // ❌ 错误:不能以数字开头
    
  3. 区分大小写

    • myVariablemyvariable 是两个完全不同的变量。
    let caseMatters;
    let casematters; // 这是另一个变量
    
  4. 不能使用保留字/关键字

    • 不能使用 JavaScript 语言本身用于特殊目的的单词,如 let, if, for, function, return 等。
    let let;     // ❌ 错误:'let' 是关键字
    let class;   // ❌ 错误:'class' 是关键字
    let if;      // ❌ 错误:'if' 是关键字
    
  5. 不允许空格和连字符

    • 变量名中不能有空格或连字符(-)。
    let my variable; // ❌ 错误:包含空格
    let my-variable; // ❌ 错误:包含连字符(会被误认为是减法操作)
    

二、软性规则(最佳实践,建议遵守)

这些规则不会导致错误,但遵守它们可以使你的代码更专业、更易读、更易维护,是程序员之间的一种约定。

  1. 使用驼峰命名法

    • 这是 JavaScript 中最常见的命名约定。
    • 小驼峰命名法:第一个单词首字母小写,后续每个单词的首字母大写。用于变量名函数名
      let firstName;
      let totalAmount;
      function calculateTotalPrice() {}
      
    • 大驼峰命名法/帕斯卡命名法:每个单词的首字母都大写。用于类名构造函数
      class UserAccount {}
      function Car(model) { // 构造函数this.model = model;
      }
      
  2. 使用有意义的、描述性的名称

    • 变量名应该清楚地表明其用途或包含的数据,避免使用像 a, x, temp 这样模糊的名称(除非在非常短的循环中)。
    • ** Bad **:
      let d; // 做什么的?天数?日期?距离?
      let val;
      
    • ** Good **:
      let elapsedTimeInDays;
      let currentUser;
      let isModalOpen;
      
  3. 布尔变量通常以 is, has, can, should 开头

    • 这明确表示该变量是一个布尔值(true/false)。
    let isLoggedIn;
    let hasPermission;
    let canEdit;
    let shouldUpdate;
    
  4. 常量通常全大写,单词间用下划线分隔

    • 对于在程序运行过程中值永远不会改变的变量(用 const 声明),这是一种常见的约定。
    const MAX_USERS = 100;
    const API_BASE_URL = 'https://api.example.com';
    const PI = 3.14159;
    
  5. 避免使用短横线-

    • 虽然技术上不行,但也要提醒一下,JavaScript 变量名不支持短横线,它只用于 HTML 的属性(如 data-*)和 CSS 的类名。

三、合法与非法变量名示例

变量名是否合法原因
userName符合所有规则,且是良好的实践
_privateVar下划线开头常用于表示“私有”成员(但并非真正私有)
$jQueryObject$ 开头常用于表示 jQuery 或其他库包裹的对象
CONSTANT_VALUE全大写常量,良好实践
let是 JavaScript 的关键字
2ndPlace以数字开头
my-variable包含连字符
my variable包含空格
some@email包含非法字符 @

总结

规则类型要求示例
硬性规则字母、数字、_$组成,不能数字开头,不能是关键字myVar1, _temp, $item
软性规则(最佳实践)使用小驼峰命名法,名称要有意义,布尔值用 is/has 前缀,常量全大写firstName, isActive, MAX_SIZE

记住:清晰的变量名是代码文档的一种形式,它能极大地提高代码的可读性,让你和你的队友在未来更容易理解和维护代码。

http://www.dtcms.com/a/361665.html

相关文章:

  • 【汇客项目】:在启动过程中报错 本来安装的是node-sass 被卸载后安装的sass ,代码中一部分出现问题
  • 【深度学习基础】深度学习中的数据增强技术:从理论到实践的解析
  • 【ARMv7】开篇:掌握ARMv7架构Soc开发技能
  • Deepoc具身智能运动控制板:赋能机器感知与决策
  • (MySQL)分布式锁
  • CCNP考试通过后多久有证书,哪里可以查询下载电子证书。
  • 重新理解图神经网络训练:数据、Batch、权重与大图
  • 深入理解零拷贝:本地IO与网络IO的性能优化利器
  • wpf之StackPanel
  • 一、Git与Gitee常见问题解答
  • 2025年数字化转型关键证书分析与选择指南
  • Spark和Spring整合处理离线数据
  • 在idea当中git的基础使用
  • Ansible变量与机密管理总结
  • 人工智能学习:什么是NLP自然语言处理
  • 【自记录】Ubuntu20.04下Python自编译
  • 全栈智算系列直播 | 智算中心对网络的需求与应对策略(上)
  • 基于FPGA的多协议视频传输IP方案
  • 【系统架构师设计(8)】需求分析之 SysML系统建模语言:从软件工程到系统工程的跨越
  • 硬件开发_基于Zigee组网的果园养殖监控系统
  • 简单高效的“色差斑块”匀色、水体修补、地物修复技巧
  • 51.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--登录注册扩展
  • 开源项目_CN版金融分析工具TradingAgents
  • Linux权限详解:从基础到实践
  • Selenium 4 文件上传和下载操作指南
  • kubernetes应用的包管理Helm工具
  • MySql blob转string
  • 15693协议ICODE SLI 系列标签应用场景说明及读、写、密钥认证操作Qt c++源码,支持统信、麒麟等国产Linux系统
  • 【Pycharm】Pychram软件工具栏Git和VCS切换
  • 【数据可视化-102】苏州大学招生计划全解析:数据可视化的五大维度