4.3 标识符
标识符是开发者在程序中所定义的单词,例如变量名或是函数名。虽说标识符中可以使用的字符是有所限制的,不过只要不与保留字中的单词重复就没有问题,所以实际上可以生成无限多的标识符。其具体的命名规则如下。
- 必须是除保留字以外的单词。
- 必须是除 true、false、null 以外的单词。
- 必须是以 Unicode 的(非空)字符开始,之后接有Unicode 字符或是数字的单词。
- 单词的长度并无限制。
不能使用和保留字相同的单词作为标识符。例如,如果有一个函数被命名为 do,那么就会引起 SyntaxError。不过,如果仅仅是在标识符的字符中包含了保留字就没有问题,例如 doit 这样的函数名就是合法的。
var do = 7; console.log("输出do的值:"); console.log(do); var doit = 8; console.log("输出doit的值:"); console.log(doit);
[Running] node "e:\HMV\JavaScript\JavaScript.js" e:\HMV\JavaScript\JavaScript.js:1 var do = 7; ^^ SyntaxError: Unexpected token 'do' at wrapSafe (internal/modules/cjs/loader.js:915:16) at Module._compile (internal/modules/cjs/loader.js:963:27) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10) at Module.load (internal/modules/cjs/loader.js:863:32) at Function.Module._load (internal/modules/cjs/loader.js:708:14) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12) at internal/main/run_main_module.js:17:47 [Done] exited with code=1 in 0.193 seconds
true、false 和 null 这三个单词是字面量,不能被用作标识符。就好比数值字面量 1 或是字符串字面量 "abc" 不能被用作标识符一样,这三个字面量也不能被用作标识符。
JavaScript 中的标识符都是以 Unicode 字符所组成的单词。Unicode 字符中包含了日文字符(日文汉字以及平片假名),所以从语法上来说,是可以使用日文作为变量名以及函数名的。不过,由于一些历史原因以及习惯用法,并不推荐使用日文作为标识符。在实际的编程过程中应当遵循以下的规则,即应该使用以英文字符(大写或是小写的英文字符)、_(下划线字符)或是
$
(美元字符)开始,之后接有英文字符、_
、$
、数字(0 至 9)的单词。
var hzh = 'hzh'; var HZH = 'HZH'; var _hzh = '_hzh'; var $hzh = '$hzh'; var hzh_ = 'hzh_'; var hzh$ = 'hzh$'; var hzh6 = 'hzh6'; var HZH_ = 'HZH_'; var HZH$ = 'HZH$'; var HZH9 = 'HZH9'; var _hzh_ = '_hzh_'; var _hzh$ = '_hzh$'; var _hzh12 = '_hzh12'; var $hzh_ = '$hzh_'; var $hzh$ = '$hzh$'; var $hzh15 = '$hzh15'; var hzh_$ = 'hzh_$'; var hzh_0 = 'hzh_0'; var hzh$0 = 'hzh$0'; var HZH_$ = 'HZH_$'; var HZH_0 = 'HZH_0'; var HZH$0 = 'HZH$0'; var _hzh_$ = '_hzh_$'; var _hzh_0 = '_hzh_0'; var _hzh$0 = '_hzh$0'; var $hzh_$ = '$hzh_$'; var $hzh_0 = '$hzh_0'; var $hzh$0 = '$hzh$0'; console.log("看看能不能把它们打印出来:"); console.log(hzh, HZH, _hzh, $hzh, hzh_, hzh$, hzh6); console.log(HZH_, HZH$, HZH9, _hzh_, _hzh$, _hzh12); console.log($hzh_, $hzh$, $hzh15, hzh_$, hzh_0); console.log(hzh$0, HZH_$, HZH_0, HZH$0, _hzh_$); console.log(_hzh_0, _hzh$0, $hzh_$, $hzh_0, $hzh$0);
[Running] node "e:\HMV\JavaScript\JavaScript.js" 看看能不能把它们打印出来: hzh HZH _hzh $hzh hzh_ hzh$ hzh6 HZH_ HZH$ HZH9 _hzh_ _hzh$ _hzh12 $hzh_ $hzh$ $hzh15 hzh_$ hzh_0 hzh$0 HZH_$ HZH_0 HZH$0 _hzh_$ _hzh_0 _hzh$0 $hzh_$ $hzh_0 $hzh$0 [Done] exited with code=0 in 0.188 seconds
习惯上,以下划线(_)开始的标识符会被作为“内部标识符”来使用。又因为在 prototype.js 中,getElementById 函数的别名被记为了
$
,所以一些常用名称的别名常常会使用以美元符号($)开始的标识符。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?