js数据类型

128 阅读2分钟

typeof操作符

undefined, boolean, string, number, object, function

1、undefined

使用var/let声明变量之后,未进行初始化(赋值),这个变量就是undefined

未定义和未声明

使用typeof操作符都返回undefined,对未定义的变量只可以进行一项操作,使用typeof操作符

2、null为一个空指针,所以使用typeof操作符时返回的是object

3、boolean有两个值

而ECMAScript中所有类型的值都可以转换为布尔值

①任何非空字符串都是true,''空字符串为false

②任何非零数字值(包括无穷大infinity), 0 和NaN为false

③任何对象都为true, null为false

④undefined为false

4、number

①浮点数需要的内存空间是需要保存整数的两倍

②数值范围,最大值存储在Number.MAX_VALUE中,超过这个值,则显示为Infinity;最小值存储在Number.MIN_VALUE中,小于这个值则显示为-Infinity,判断是否在可显示数值范围内isFinite()

③NaN非数值,这个值用于表示,一个本来要返回数值的操作数,未返回数值的情况,对NaN的操作都会返回NaN,NaN与任何值都不相等,包括NaN本身。ECMAScript定义了isNaN()

④数值转换,有3个函数可以把非数值转换为数值Number()、parseInt()、parseFloat(),其中第一个函数可以作用域任何类型数据,而其余两个则是专门用于把字符串转换成数值的

Nuber 一元加操作符与Number函数作用一样

针对布尔值true转换为1,false转换为0

如果是null,转换为0

undefined,转换为NaN

字符串,字符串中只能是数字或者是十六进制,只包含一个小数点.  空字符串转换为0

对象,先调用对象的valueOf

parseInt针对字符串的转换方法,在转换时,更多的是看其是否符合数值模式

会忽略字符串前面的空格,直至找到第一个非空格字符,如果第一个非空格字符不是数字字符或者负号-,则返回NaN。用parseInt转换空字符串时会返回NaN

string

字符串是不可变的

toString和String,null和undefined不可调用toString,因此在不知道要转换的值是否为null和undefined的时候,可以使用String

Object类型,ECMAScript中的对象就是一组数据和功能的集合

对象的实例的属性和方法

1、constructor:保存着实例的构造函数

2、hasOwnProperty(): 用于检查给定的属性在当前实例中(而不是实例的原型中)是否存在

3、isPrototype():用于检查被传入的对象是否是当前对象的原型

4、toLocaleString():返回对象的字符串表示

5、toString:返回对象的字符串表示

6、valueOf:返回对象的字符串、数值或者布尔值表示