基本数据类型有 string、boolean、number、null、undefined、Array、Object、function八种;
需要注意的地方:
1. number
1)number有两种特殊的值 NaN、Infinity。
2)typeof(NaN) 和 typeof(Infinity) 类型都为number
3)NaN 和任何值运算结果都为NaN,但是NaN != NaN,
4)0 / 0 的值为 NaN,Boolean(NaN) 的值为 false
5) Infinity != Infinity
2. Array
1)数组 A = [100] ,A[0] == A['0'] 值为true,[ ]中不区分number和数字型string
2)判断一个对象是不是数组不能用typeof,因为typeof (Array)的返回值为Object。可以用以下方法来判断
1)数组本身的方法 Array.isArray(对象)
2)根据原型判断 Array.prototype.isPrototypeOf(对象)
3)根据构造函数判断 对象 instanceof Array 来判断
4)根据对象的class属性(类属性),调用原型链方法toString(),
Object.prototype.toString.call(对象)
3.null
typeof(Null)返回结果为Object,但Null并非Object,具有Null值的变量也并非Object。
4.undefined
typeof(undefined) 返回也是 undefined。可以将undefined赋值给任何变量或属性,但并不意味了清除了该变量,反而会因此多了一个属性。