JavaScript有5种简单数据类型(Undefined,Null,Boolean,Number,String)和一种复杂数据类型Object.只有这六种,再无其他
2.1.typeof操作符
可以使用typeof来检查所给的数据是什么类型。
typeof 1234; //number
typeof "hello"; //string
typeof (true); //boolean
typeof (message); //undefined
typeof (null); //Object
需要注意的是:
1.typeof是一个操作符而不是一个函数,所有可以不带括号
2.null的类型是Object,是因为Null是一个空的对象引用
2.2.Undefined类型
在使用var声明变量,但未对其初始化时,这个变量的值就是undefined,表示未被初始化的值
var message;
typeof (message); //undefined
2.3.Null类型
Null值表示一个空对象指针,所以使用typeof 检测时会返回object。
实际上,Undefined也是派生自null,所以下面会返回true:
alert(null == undefined); //true
在定义一个变量,但暂时还不想对它赋值时,可以使用null,不要使用Undefined。
2.4.Boolean类型
Boolean类型有两个值,true和false。注意这两个值是区分大小写的。如下:
typeof true; //"boolean"
typeof True; //"undefined"
转换:
要将一个值转换成boolean值时,可以使用Boolean()函数。
2.5.Number类型
数值类型分为整型,浮点型。进制也会不同
进制:
八进制前面第一个数必须是0
十六进制前面必须是0x
数值范围:
数值的大小是根据内存来的,如果超过了内存的限制,最大数会被转换为:Infinity,负数会被转换为-Infinity。
可以使用isFinite()函数检测数值是不是在(-Infinity,Infinity)之间,如果位于最大数和最小数之间就会返回true.
NaN:
NaN: Not a Number,这个数值表示一个本来要返回数值的操作却为返回数值的情况,这样就不会抛出错误了。
- 任何涉及NaN的操作都会返回NaN
- NaN与任何值都不相等,包括NaN本身
isNaN()函数,会检测这个参数是不是“不是数值”
数值转换:
数值转换有三个函数,Number(),parseInt(),parseFloat()。
由于Number()函数在转换字符串时比较复杂且不够合理,因此在处理数值时使用parseInt(),parseFloat()这两个函数
parseInt()接受两个参数,第一个参数是要转换的参数,第二个是要转换的进制。该转换有一个特点,会把小数点后面的数字省略,只认整数部分。
parseFloat()将数值转换成字符串,会解析到第一个小数点后面。此方法只解析十进制,只接受一个参数
parseInt("070",8); //56
parseFloat("12.34.2"); //12.34
2.6.String类型
- string类型可以使用length属性来获取字符串长度
- toString()方法返回字符串的一个副本
- String()方法将数值转换为字符串
2.7.Object类型
Object每个实例都具有以下方法和属性:
- constructor:保留着用于创建当前对象的函数
- hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中(不是在原型中)是否存在,参数用字符串形式指定
- isPrototypeOf(object):用于检查传入的对象是否是当前对象的原型
- propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用for-in语句来枚举,参数必须用字符串形式来指定
- toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应
- toString():返回对象的字符串表示
- valueOf():返回对象的字符串,数值或布尔值表示,通过与toString()方法的返回值相同