第3章,基本概念
3.1,语法
A,ECMAScript中的一切(变量、函数名和操作符)都区分大小写。
B,ECMAScript标识符采用驼峰大小写格式。
3.2,关键字和保留字
3.3,变量
A,ECMAScript的变量是松散类型的,定义时要使用var操作符,省略var,可以创建一个全局变量。
3.4,数据类型
A,5种简单数据类型:Undefined、Null、Boolean、Number和String。1种复杂数据类型:Object。
B,从逻辑角度来看,null值表示一个空对象指针。只要意在保存对象的变量还没有真正保存对象,就应该明确地让该变量保存null值。这样做不仅可以体现null作为空对象指针的惯例,而且也有助于进一步区分null和undefined。
C,浮点数值在某些语言中也被称为双精度数值。
D,八进制字面值的第一位必须是零(0),然后是八进制数字序列(0~7)。如果字面值中的数值超出了范围,那么前导零将被忽略,后面的数值将被当作十进制解析。十六进制字面值的前两位必须是0x,后跟字母大小写皆可。
E,永远不要测试某个特定的浮点数值。
F,Infinity不是能够参与计算的数值。
G,NaN,即非数值(Not a Number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。NaN与任何值都不相等。
H,有3个函数可以把非数值转换为数值:Number()、parseInt()、parseFloat()。parseFloat()只解析十进制值。
I,用双引号表示的字符串和单引号表示的字符串完全相同。
J,默认情况下,toString()方法以十进制格式返回数值的字符串表示。而通过传递基数,toString()可以输出二进制、八进制、十六进制。在不知道要转换的值是不是null或undefined的情况下,还可以使用转型函数String()。
K,ECMAScript中的所有数值都以IEEE-754 64位格式存储。
L,对25执行按位非操作,结果得到了-26。这也验证了按位非操作的本质:操作数的负值减1。
M,无符号右移操作符由3个大于号(>>>)表示。无符号操作符会把负数的二进制码当成正数的二进制码。
N,ECMAScript不存在块级作用域。
O,for-in语句是一种精准的迭代语句,可以用来枚举对象的属性。为了保证最大限度的兼容性,建议在使用for-in循环之前,先检测确认该对象的值不是null或undefined。
P,break和continue语句都可以与label语句联合使用,从而返回代码中特定的位置。这种联合使用的情况多发生在循环嵌套的情况下。联合标签,break可以退出多个循环。
Q,开发大型应用程序时,不建议使用with语句。
R,可以在switch语句中使用任何数据类型,无论是字符串,还是对象都没有问题,每个case的值不一定是常量,可以是变量,甚至是表达式。switch语句在比较值时使用的是全等操作符,因此不会发生类型转换。
S,ECMAScript函数的一个重要特点:命名的参数只提供便利,但不是必须的。
T,arguments的值永远与对应命名参数的值保持同步。
U,通过检查传入函数中参数的类型和数量并作出不同的反应,可以模仿方法的重载。
V,ECMAScript没有为整数和浮点数分别定义不同的数据类型,Number类型可以用于表示所有数值。
W,未指定返回值的函数返回的是一个特殊的undefined值。