1.1 字符编码
由于JavaScript使用Unicode字符集编写,每个字符使用两个字节表示,那么就可以用中文来命名变量了(习惯了英文命名,第一次尝试写中文变量感觉好别扭=。=)。不过并不建议用汉字命名变量,ECMAScript 1,2版本只允许Unicode字符出现在注释。
<script> var 人名 = "老张"; function 睡觉(谁) { alert(谁 + ":快睡觉!都半夜了!"); } 睡觉(人名); </script>
1.2 区分大小写
JavaScript严格区分大小写,使用率较高的大小写方式有(毕竟写的好看的代码真的令人舒畅):
(1)构造函数时,函数名首字母大写(.js文件中):
d = new Date(); //获取当前日期和时间 alert(d.toString()); //显示日期
(2)多个词语连写:
骆驼命名法(就是每个单词的首字母大写,让人轻松判断函数名的意思):
printEmployeePaychecks();
下划线命名法(就是用下划线分词):
print_employee_paychecks();
1.3 标识符
JavaScript标识符主要包括:变量名,函数名,参数名,属性名。命名规则与C语系基本相同。
ECMAScript 3中,可以用Unicode字符集命名,但不建议使用;另外也可以用Unicode转义序列。例如:
var \u0061bc = "标识符abc中a字符的Unicode转义序列是\\u0061"; alert(\u0061bc);
转义不方便,很少用。在JavaScript关键字,脚本程序等特殊情况才使用转义序列传达或者显示特殊字符。
1.4 直接量
就是在程序中直接显示的值,如字符串,数值,布尔值,正则表达式,对象初始化,数组初始化等。
"字符串直接量" //字符串直接量 123456 //数值直接量 true //布尔值直接量 /^ab.*/g //正则表达式直接量 null //特殊值直接量 {a:1,b:2} //对象初始化直接量 [9,6,4] //数组初始化
1.5 关键字和保留字
ECMAScript 关键字
ECMAScript 5保留关键字:class,const,enum,export,extends,import,super。
严格模式下的保留关键字:implements,let,private,public,yield,interface,package,protected,static。
严格模式下,严格限制 arguments, eval 作为变量名,函数名或者参数名。
ECMAScript 3将Java所有关键字都列为保留字,ECMAScript 5放宽了限制。
JavaScript预定义全局变量和函数
1.6 分隔符
空格,制表符,换行符,换页符等,在JavaScript中统称分隔符。(虽然没有实际意义,但是不能缺少)例如:
function toStr(a) { return a.toString(); //错误换行 } alert(toStr("abc"));
由于return可以被解析器正常解析,则解析器会在正常解析的情况下为其补加一个分号,因此实际解析为:
function toStr(a) { return; a.toString(); } alert(toStr("abc"));
这段代码的正确写法应该是:
function toStr(a) { return a.toString(); } alert(toStr("abc"));
并且不能在标识符关键字等名称中添加分隔符:
function toStr(a) { return a.to String(); //分隔符错误 } alert(toStr("abc"));
在字符串和正则表达式中的分隔符会被认为是具有意义的zifu并进行解析:
var a = "空格,制表符和换行符"; var b = "空格 , 制表符和换行符"; alert((a==b).toString()); //返回false
1.7 注释
注释不会被解析。
//代码段前注释,概述代码段功能 function toStr(a) { //语句间注释,介绍函数 //代码段中注释,区域代码功能描述 return a.toString(); //语句结束后注释,语句作用描述 }
/* 多行注释 多行注释 */