老生常谈javascript变量的命名规范和注释

简单说,标识符命名规则如下:

第一个字符可以是任意Unicode字母,以及美元符号($)和下划线(_)。

第二个字符及后面的字符,还可以用数字。

下面这些都是合法的标识符。

arg0
_tmp
$elem
π

下面这些则是不合法的标识符。

1a
23
***
a+b
-d

中文是合法的标识符,可以用作变量名。

var 临时变量 = 1;

JavaScript有一些保留字,不能用作标识符:arguments、break、case、catch、class、const、continue、debugger、default、delete、do、else、enum、eval、export、extends、false、finally、for、function、if、implements、import、in、instanceof、interface、let、new、null、package、private、protected、public、return、static、super、switch、this、throw、true、try、typeof、var、void、while、with、yield。

另外,还有三个词虽然不是保留字,但是因为具有特别含义,也不应该用作标识符:Infinity、NaN、undefined。
 
源码中被JavaScript引擎忽略的部分就叫做注释,它的作用是对代码进行解释。Javascript提供两种注释:一种是单行注释,用//起头;另一种是多行注释,放在/* 和 */之间。

// 这是单行注释

/*
 这是
 多行
 注释
*/

本教程后面的代码部分,会采用这两种形式说明代码的运行结果,以及需要注意的地方。

此外,由于历史上JavaScript兼容HTML代码的注释,所以<!--和-->也被视为单行注释。

x = 1; <!-- x = 2;
--> x = 3;

上面代码中,只有x = 1会执行,其他的部分都被注释掉了。

需要注意的是,-->只有在行首,才会被当成单行注释,否则就是一个运算符。

function countdown(n) {
 while (n --> 0) console.log(n);
}
countdown(3)
// 2
// 1
// 0

上面代码中,n --> 0实际上会当作n-- > 0,因为输出2、1、0。

相关推荐