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位小数
posted @ 2015-02-01 03:03  enterframe  阅读(278)  评论(0)    收藏  举报