|
JavaScript 的变量命名有两个限制:
变量名称必须仅包含字母、数字、符号 $ 和 _。
首字符必须非数字。
有效的命名,例如:
let userName;
let test123;
如果命名包括多个单词,通常采用驼峰式命名法(camelCase)。也就是,单词一个接一个,除了第一个单词,其他的每个单词都以大写字母开头:myVeryLongName。
有趣的是,美元符号 '$' 和下划线 '_' 也可以用于变量命名。它们是正常的符号,就跟字母一样,没有任何特殊的含义。
下面的命名是有效的:
let $ = 1; // 使用 "$" 声明一个变量
let _ = 2; // 现在用 "_" 声明一个变量
alert($ + _); // 3
下面的变量命名不正确:
let 1a; // 不能以数字开始
let my-name; // 连字符 '-' 不允许用于变量命名
区分大小写
命名为 apple 和 APPLE 的变量是不同的两个变量。
允许非英文字母,但不推荐
可以使用任何语言,包括西里尔字母(cyrillic letters)甚至是象形文字,就像这样:
let имя = '...';
let 我 = '...';
从技术上讲,这样没问题。这样的命名是完全允许的,但是用英文进行变量命名是国际惯例。哪怕我们正在写一个很小的脚本,它也有可能会被使用很久。某个时候,来自其他国家的人可能会需要阅读它。
保留字
有一张 保留字列表,这张表中的保留字无法用作变量命名,因为它们被用于编程语言本身了。
比如,let、class、return、function 都被保留了。
下面的代码将会抛出一个语法错误:
let let = 5; // 不能用 "let" 来命名一个变量,错误!
let return = 5; // 同样,不能使用 "return",错误!
未采用 use strict 下的赋值
一般,我们需要在使用一个变量前定义它。但是在早期,我们可以不使用 let 进行变量声明,而可以简单地通过赋值来创建一个变量。现在如果我们不在脚本中使用 use strict 声明启用严格模式,这仍然可以正常工作,这是为了保持对旧脚本的兼容。
// 注意:这个例子中没有 "use strict"
num = 5; // 如果变量 "num" 不存在,就会被创建
alert(num); // 5
上面这是个糟糕的做法,严格模式下会报错。
"use strict";
num = 5; // 错误:num 未定义
|
|