JS有5种简单数据类型:Undefined, Null, Boolean, Number和String,还有1种复杂数据类型——Object。所有值最终都将是上述6种类型之一。
Undefined
表示声明了变量但是没有对它初始化。
Null
表示一个空对象指针,用typeof null判断会返回‘Object’
Boolean
只有true和false,区分大小写。
Number
1. 浮点数的精确度不如整数,所以0.1+0.2不一定等于0.3,不要用if(0.1+0.2===0.3)来做测试。
2. 数值范围:Number.MIN_VALUE(最小值) ~ Number.MAX_VALUE(最大值);判断一个数是不是有穷数,可以用isFinite()函数。
3. NaN——表示一个要返回数值的操作数没有返回数值的情况。任何数值除以非数值都会返回NaN。NaN和任何值都不相等,包括NaN。isNaN()函数可以接受任何类型的数值,用来判断这个参数是否“不是数值”。
4. 数值转换:Number(), parseInt()和parseFloat()。
Number()——可以用于任何数据类型,如果是对象,则调用valueOf(),如果转换的结果是NaN,则调用对象的toString()方法,再返回字符串值;
parseInt()——会忽略字符串前面的空格,第一个字符如果不是数字或者正负号,会返回NaN。该方法会继续解析完后续字符或者遇到了一个非数字字符。如,“123a10”会被转换为123,“12.3”会被转换为12。这个函数可以有第二个参数,用于确定转换时使用什么进制。
parseFloat()——只解析十进制值
String
一个值转换成一个字符串有2种方法。
第一个是toString(),会返回相应值的字符串(副本),null和undefined没有这个方法;调用toString()时,可以传递一个参数表示输出数值的基数(即什么进制)。
第二种是String(),在不知道要转换的值是不是null或undefined的情况下,使用该方法。遵循:有toString()的情况下调用toString(), null则返回null, undefined则返回undefined。
复杂数据类型Object
Object的每个实例都有以下属性和方法:
constructor:保存着用于创建当前对象的函数
hasOwnProperrty(propertyName):检查给定的属性在当前对象实例中(而不是在原型中)是否存在。propertyName必须以字符串形式指定
isPropertyOf(object):检查传入的对象是否是当前对象的原型
propertyIsEnumerable(propertyName):用于检查是否可以使用for-in语句进行枚举。作为参数的属性名必须以字符串形式指定。
toLocaleString():返回对象的字符串表示,与执行环境的地区对应。
toString():返回对象的字符串表示。
valueOf():返回对象的字符串、数值或布尔值表示。
以上为基础的数据类型知识,有关object的更复杂的内容,稍后再理~
参考:Javascript高级程序设计(第3版)