JavaScript数据类型
1. 数值
- Infinity:无穷大
- NaN:非数值
- Number.MAX_VALUE:可表示的最大数值
- Number.MIN_VALUE:可表示的最小数值
- Number.NaN:非数值
- Number.POSITIVE_INFINITY:正无穷大
- Number.NEGATIVE_INFINITY:负无穷大
2. 数组
数组的下标可以不连续,这种情况length属性将不准确。
3. 对象
- 通过构造函数去创建类。
- 代词this总是指向真正调用这个方法的对象。
- point.x与point["x"]是等效的。
4. 函数
函数的多次调用是相互独立的,他们作用于不同的堆栈区域,可以拥有不同的外部环境,或者也可以共享外部环境。由于函数有被调用时创建封闭环境的特性,因此在某些情况下它又被称为”闭包“。
另一种定义函数的方法:var square = new Function("x", "return x*x");
5. null与undefined
- typeof(null) = object,typeof(undefined) = undefined。
- 代词this总是指向真正调用这个方法的对象。
- point.x与point["x"]是等效的。
6. 装箱与拆箱
- 装箱:如下,调用typeof将返回object;
var o_a = new Number(a);
var o_b = new String(b);
var o_c = new Boolean(c); - 拆箱:valueOf()方法,通常自动完成。
7. 类型转换
- 自动转换:不同数据类型的操作数执行运算时会进行自动转换,规则如下:
| + | 数值 | 字符 | 布尔 |
| 数值 | 数值相加 | 数值转字符后与字符拼接 | 布尔转换为1或0之后与数值相加 |
| 字符 | 字符拼接 | 布尔转换为true或false后与字符拼接 | |
| 布尔 | 布尔转换为1或0之后相加 |
其他运算将自动转换为数值。
- 强制转换:parseInt()、parseFloat()、toString(),构造函数强制转换。
8. 数值精度
浮点数计算通常产生出乎意料的结果:alert(45.6*13) 输出592.8000000000001,需要通过其他方法来修正。
- Math.floor() 取比当前数值小的最大整数
- Math.ceil() 取比当前数值大的最小整数
- Math.round() 四舍五入
- Number对象的toFixed方法,保留n位小数

浙公网安备 33010602011771号