第二章 语法(Grammar)
1.注释
JavaScript中提供两种注释方式:一种是/* */的块注释,另一种是以//开头的行注释。需要注意的是,块注释对于被注释的代码来说是不安全的,会造成语法错误。如:
/*
var rm_a = /a*/.match(s);
*/
2.标识符(Names)
标识符由一个字母开头,其后可以选择性地增加数字、字母或者下划线。同时标识符不能使用保留字。
3.数字(Numbers)
JavaScript只有一个数字类型。它在内部表示为一个64位的浮点数,和JAVA的double数字类型一样。它没有分离出整数类型,所以1和1.0的值是一样的。
指数部分:100和1e2是 相同的数字。
NaN是一个数值,它表示一个不能产生正常结果的运算结果。NaN不等于任何值,包括它自己。
4.字符串(Strings)
字符串字面量可以被包含在双引号或者单引号里,可能包含0或多个字符。\(反斜线)是转义字符。JavaScript在被创建的时候,Unicode是一个16位的字符集,所以JavaScript中所有字符都是16位的。
字符串是不可变的,它一旦被创建,就永远无法被改变。
5.语句(Statements)
在语句中,以下值被当做假:false、null、 undefined、”(空字符串)、0、NaN。
其中需要注意的是:break语句会使程序退出一个循环语句或switch语句。它可以指定一个可选的标签,那退出的就是带上这个标签的语句。
6.表达式(Expressions)
最简单的表达式是字面量值(比如字符串或数字)、变量、内置的值(true、false、null、undefined、NaN、Infinity)、以new开头的调用表达式、以 delete开头的属性提取表达式、包在圆括号中的表达式、以一个前置运算符作为前导的表达式、或者表达式后面跟着:
1、一个中置运算符与另一个表达式;
2、三元运算符?后面跟着一个表达式,然后接上一个:,最后接上第三个表达式;
3、一个函数调用;
4、一个属性提取表达式。
三元运算符?有3个运算数。如果第1个运算数值为真,产生第2个运算数的值。但如果第1个运算数值为加,则产生第3个运算数的值。
typeof运算符产生的值
有’number’、’string’、’boolean’、’undefined’、’function’和’object’。
7.字面量(Literals)
对象字面量是一种可以方便地按照指定规格创建新对象的表示法。属性名可以是标识符或字符串。这些名字被当做字面量名而不是变量名来对待,所以对象的属性名在编译时才能被识别。
数组字面量是一种可以方面地按指定规格创建新数组的表示法。
8.函数(Functions)
函数字面量定义了函数值。它可以有一个可选的名字,用于递归地调用自己。它可以指定一个参数列表,这些参数就像变量一样,在函数被调用时由实际传递的参数(argument)初始化。