2.1 空白
用/* */包围的块注释形式来自PL/I的语言
在JavaScript中,那些字符对也可能出现在正则表达式字面上,所以以块注释对于被注释的代码块来说是不安全的。
/*
var rm_a = /a*/.match(s);
*/
这里导致了一个语法错误。建议避免使用 /* */ 注释,而用 // 注释。
2.2 标识符
JavaScript不允许在对象字面量中,或者在一个属性存取表达式的点号之后,使用保留字作为对象的属性名
字面量:如何表达这个值,一般除去表达式,给变量赋值时,等号右边都可以认为是字面量。有:字符串字面量,数组字面量,对象字面量,函数字面量
2.3 数字
JavaScript只有一个单一的数字类型,它在内部被表示为64位的浮点数。
值NaN是一个数值,它表示一个不能产生正常结果的运算结果。NaN不等于任何值,包括它自己。可以用isNaN(num)检测NaN
值Infinity表示所有大于1.7976931349623157e+308的值
2.4 字符串
JavaScript在被创建的时候,Unicode是一个16位的字符集,所以JavaScript中的所有字符都是16位的
字符串有length属性。例如:"seven".length是5
toUpperCase方法 :'cat'.toUpperCase() === 'CAT'
2.5 语句
switch、while、for和do语句允许有一个可选的前置标签(label),它配合break使用
以下列出的值被当作假:
false、null、undefined、空字符串 ' ' 、数字 0 、数字NaN
其他所有的值被当作真
JavaScript不允许break和return关键字和标签之间换行
2.6 表达式
字面量值,变量,内置的值(true,false,null,undefined,NaN和Infinity),以new前导的调用表达式,以delete前导的属性存取表达式,包在圆括号中的表达式,以一个前缀运算符作为前导的表达式,或者表达式后跟着:
一个插入运算符与另一个表达式(没有查到什么是插入运算符!!!)
三元运算符?后面跟着另一个表达式,然后接:,在然后接第三个表达式
一个函数调用
一个属性存取表达式(属性存取表达式:指定一个对象或数组的属性或元素)
typeof运算符产生的值有'number','string','boolean','undefined','function'和'object'