《JacaScript权威指南(第五版)》读书笔记(第二章)——词法构造

目录

程序设计语言的此法结构是一套基本规则,用来详细说明如何用这种语言来编写程序。

一、字符集

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

猜你喜欢

转载自blog.csdn.net/Jason_first/article/details/80174181
今日推荐