js数据类型

简单数据类型(基本数据类型): String Number Boolean Null Undefined

复杂数据类型: Object

typeof 检测变量的数据类型

特殊值null被认为是一个空的对象引用,因此typeof null == object

Undefined类型

undefined类型只有一个值就是undefined,变量声明但未初始化时就是undefined。

对于已声明但未赋值的变量以及未声明的变量,typeof 都为undefined。

Null类型

Null类型只有一个值null,从逻辑角度来看null值表示一个空对象指针,因此typeof null返回object。

如果定义的变量准备在将来用于存储对象,那么最好将变量初始化为null。

undefined派生自null,因此null == undefined 返回值为true

Boolean类型

Boolean类型只有两个字面值 true和false,其他类型转boolean需要调用Boolean()函数。

String中任何非空字符串转换为true,空字符串转换为false;

Number中任何非0数字转换为true(包括无穷大),0和NaN转换为false;

Object中除了null之外的对象(即使为空对象)转换为true;

Undefined转换为false。

Number类型

浮点数值:该数值必须包含一个小数点,且小数点后至少有一位数字。

保存浮点数所需要的内存空间时保存整数的两倍。浮点数最高精度时17位小数,但在计算时其精确度远远不如整数。(浮点数如何计算?)

数值范围: 

最小数值:Number.MIN_VALUE

最大数值:Number.MAX_VALUE

计算超出js数值范围,将会被转换为特殊的Infinity值,分为正无穷Infinity(Number.POSITIVE_INFINITY)和负无穷-Infinity(Number.NEGATIVE_INFINITY)。

isFinite()函数判断值是否位于最小值和最大值之间。

NaN

NaN即非数值(not a number),是一个特殊的数值,表示本应要返回数值但实际未返回数值的情况。任何涉及NaN计算的操作都会返回NaN;NaN与任何值都不相等,包括NaN本身。

isNaN()函数判断是否为NaN,在判断前函数内部将会对数据类型进行转换,比如string类型的‘10’会被转化为number类型的10.

数值转换

Number():可以用于任何数据类型 

parseInt()和parseFloat()专门用于把字符串转换成数值

Number()转换规则:

1、如果是Boolean值,true和false分别被转换为1和0;

2、如果是数字值,则直接输出;

3、null 返回0;

4、undefined返回NaN;

5、如果是字符串,遵循以下原则:

字符串中只包含数字(包括前面带正号和负号),则转换为十进制数值;如果字符串包含有效的浮点格式,则将其转换为对应的浮点数值(忽略前导0);如果字符串包含有效的十六进制格式例如x0f,则将其转换为相同大小的十进制数值;空字符串转换为0;其他字符串转换为NaN。

6、如果是对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值。如果转换的结果是NaN,则调用对象的toString()方法,然后再次依照前面的规则转换返回的值。

parseInt() 在转换字符时更多的是看其是否符合数值模式,会忽略字符串前面的空格,直接找到第一个非空格字符,如果第一个字符不是数字字符或者负号直接返回NaN。parseInt()转换空字符串为NaN。如果第一个字符是数字字符,parseInt()会继续解析第二个字符,直至遇到非数字字符。

parseInt()能够解析十六进制字符,其有第二个参数可以指定转换的格式是十进制还是十六进制等。

parseFloat(),始终忽略前导的0,只能解析十进制字符。字符串中的第一个小数点是有效的,第二个小数点及其之后的小数点都是无效的。

 String类型

转换为字符串: toString(),null和undefined无此方法。

数值转换时可传递参数2、8、10、16等表示转换的进制,默认为十进制。

在不知道要转换的值是否为null或者undefined,可使用String()方法,这个函数能够将任何类型转换为字符串。

String()转换原则:

1、如果值有toString()方法,则调用改方法(没有参数)并返回相应的结果;

2、如果是null,输出"null";

3、如果是undefined,输出"undefined"。

 Object类型

ECMAScript中对象其实是一组数据和功能的集合。对象可通过执行new操作符后跟要创建的对象类型的名称来创建。 

Object的每个实例都具有下列属性和方法:

1、constructor:保存着用于创建当前对象的函数,比如new Object()创建出来的对象,其构造函数就是Object();

2、hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中是否存在;

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

4、propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用for-in语法来枚举;

5、toLocalString():返回对象的字符串表示,该字符串与执行环境的地区对应;

6、toString():返回对象的字符串表示;

7、valueOf():返回对象的字符串、数值或者布尔值表示。通常与toString()方法返回值相同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值