JavaScript 标识符

定义

标识符是用来命名变量、函数、属性或函数参数的字符序列。

命名规则

基本语法规则

  • 第一个字符:字母(a-z, A-Z)、下划线(_)或美元符号($)
  • 后续字符:字母、数字(0-9)、下划线或美元符号
  • 区分大小写:myVarMyVar 是不同的标识符

合法标识符示例

// 合法标识符
let userName;
let _privateVar;
let $element;
let firstName;
let age2;
let π;  // Unicode字符

非法标识符示例

// 非法标识符
let 2age;        // 不能以数字开头
let first-name;  // 不能包含连字符
let class;       // 关键字不能作为标识符

命名风格

驼峰命名法(推荐)

let firstName = "John";
let lastName = "Doe";
let getUserName = function() {};

其他命名风格

// 下划线风格(不推荐在JavaScript中使用)
let first_name = "John";
 
// 常量命名(全大写 + 下划线)
const MAX_SIZE = 100;
const API_URL = "https://api.example.com";

最佳实践

语义化命名

// 好的命名
let userAge = 25;
let isLoggedIn = true;
let calculateTotal = function() {};
 
// 不好的命名
let x = 25;
let flag = true;
let func = function() {};

布尔值命名

// 使用 is、has、can、should 等前缀
let isVisible = true;
let hasPermission = false;
let canEdit = true;
let shouldUpdate = false;

函数命名

// 动词 + 名词形式
let getUserInfo = function() {};
let validateEmail = function() {};
let renderComponent = function() {};

限制和注意事项

保留字和关键字

以下标识符不能使用:

  • 关键字let, const, var, function, if, else, for, while
  • 保留字enum, implements, package, protected
  • 字面量true, false, null, undefined

Unicode 支持

// JavaScript支持Unicode字符
let 姓名 = "张三";
let αβγ = "Greek letters";
let 🚀 = "rocket";  // 支持emoji(不推荐)

作用域考虑

命名冲突避免

// 避免与内置对象冲突
// 不好的做法
let Array = [];
let Object = {};
 
// 好的做法
let userArray = [];
let userObject = {};

作用域前缀

// 使用前缀区分作用域
let globalConfig = {};
function processData() {
    let localData = [];
    let _privateHelper = function() {};
}

下一篇:严格模式