JavaScript 标识符
定义
标识符是用来命名变量、函数、属性或函数参数的字符序列。
命名规则
基本语法规则
- 第一个字符:字母(a-z, A-Z)、下划线(_)或美元符号($)
- 后续字符:字母、数字(0-9)、下划线或美元符号
- 区分大小写:
myVar
和MyVar
是不同的标识符
合法标识符示例
// 合法标识符
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() {};
}