目录
程序设计语言的此法结构是一套基本规则,用来详细说明如何用这种语言来编写程序。
一、字符集
JavaScript程序是用16位的Unicode字符集编写的,它可以表示地球上通用的每一种书面语言。
JavaScript程序中的每个字符都是用两个字节表示的。
虽然ECMAScript v3标准允许Unicode字符出现在JavaScript程序中的任何地方,但在ECMAScript标准化之前的JavaScript版本通常根本不支持Unicode编码。
二、大小写敏感
JavaScript是一种区分大小写的语言,,而HTML不区分大小写(尽管XHTML是区分大小写的)。
三、空白符和换行符
JavaScript会忽略程序中记号之间的空格、制表符和换行符。
四、可选的分号
JavaScript中的简单语句后通常都有分号(;),如果语句分别放置在不同的行中,就可以省去分号。
五、注释
JavaScript也支持C++型的注释和C型注释。JavaScript会把处于“//”和一行结尾之间的任何文本都当作注释忽略掉。此外“/*”和“*/”之间的文本也会被当作注释。
六、直接量
所谓直接量(literal),就是程序中直接显示出来的数据值。下面列出的都是直接量:
12 // The number twelve
1.2 // The number one point two
"hello world" // A string of text
'Hi' // Another string
true // A Boolean value
false // The other Boolean value
/javascript/gi // A "regular expression" literal (for pattern matching)
null // Absence of an object
在ECMAScript v3中,像数组直接量和对象直接量这样的表达式也是支持的。例如:
{ x:1, y:2 } // An object initiallzer
[1,2,3,4,5] // An array initializer
七、标识符
所谓标志符(identifer),就是一个名字。在Javascript中,标志符用来命名变量和函数,或者用作JavaScript代码中某些循环的标签。
JavaScript中合法的标志符的命名规则:
- 第一个字符必须是字母、下划线(_)或美元符号($)。
- 数字不允许作为首字符出现,这样JavaScript可以轻易地区分标志符和数字了。
- ECMAScript v3还允许标志符中有Unicode转义序列
- 标记符不能和JavaScript中用于其他用途的关键字同名。
注意:在JavaScript1.1以前,美元符号还不是合法的标志符,他们只会由代码生成工具专门使用,因此,在编写代码的时候,应该尽量避免使用美元符号。
八、保留字
表1:保留的JavaScript关键字
break | do | if | switch | cypeof |
---|---|---|---|---|
case | else | in | this | var |
catch | false | instanceof | throw | void |
catch | false | instanceof | throw | void |
continue | finally | new | true | while |
default | for | null | try | with |
delete | function | return |
表2列出了其他的保留关键字。虽然现在JavaScript已经不使用这些保留字了,但是ECMAScdptv3保留了它们,以备扩展语言。
表2: ECMA扩展保留的关键字
abstract | double | goto | native | static |
---|---|---|---|---|
boolean | enum | implements | package | super |
abstract | double | goto | native | static |
boolean | enum | implements | package | super |
byte | export | import | private | synchronized |
char | extends | int | protected | throws |
class | final | interface | public | transient |
const | float | long | short | volatile |
debugger |
除了上而列出的正式保留字外,当前ECMAScdpt v4标准的草案正在考虑关键字as、is, namespace和use的用法。虽然目前的JavaScript解释器不会阻止将这四个关键字用作标识符,但是应该避免使用它们。
此外,还应该避免把JavaScript预定义的全局变量名或全局函数名用作标识符。如采用这些名字创建变量或函数,就会得到一个错误(如果该属性是只读的)或重定义了已经存在的变量或函数。表3列出了ECMAScript v3标准定义的全局变置和全局函数。不同的JavaScript版本可能会定义其他的全局属性,每个特定的JavaScript嵌入(客户端、服务器端等),会有自己的全局属性扩展列表(注2)。
表3:要避免使用的其他标识符
arguments | encodeURI | Infinity | Object | String |
---|---|---|---|---|
Array | Error | isFinite | parseFloat | SyntaxError |
Boolean | escape | isNaN | parselnt | TypeError |
Date | eval | Math | RangeError | undefined |
decodeURI | EvalError | NaN | ReferenceError | unescape |
decocieURlComponent | Function | Number | RegExp | URIError |