JavaScript学习笔记之JavaScript数据类型

JavaScript中有5种简单数据类型:Undefined、Null、Number、String、Boolean,这些基本数据类型是按值访问的。一种复杂数据类型:Object,Object本质上是由一组无序的名值对组成的。

Undefined类型

Undefined类型只有一个值,即undefined值,对于任何声明后未初始化的对象,系统默认赋值undefined给该对象。这个类型的引入主要是为了区分空对象指针(null)和未初始化的变量。示例如下。

var a;
alert(a);//"undefined"

Null类型

Null类型同样只有一个值,即null值。null值表示的是一个空对象指针,因此typeof null的结果就是object。通常对于想要保存对象变量而还没有真正保存对象,将它显示初始化为null,为什么呢,我的理解是这样可以保证对象初始化的一致性和规范性,使其区别于保存了对象引用的变量,同时也可以和undefined进行区别。

基于null的判断示例如下。

if(a!=null){
    //处理程序
}
Number类型

JavaScript中不区分整数类型和各种浮点数类型,统一使用Number类型表示。

当使用浮点数时有一点需要注意:同其他使用基于IEEE754数值的浮点计算一样,JavaScript中的浮点数计算会产生舍入误差的问题,即计算精度远远不如整数。示例如下。

var a=0.1,b=0.2;
if(a+b==0.3){
    alert("Ok");   //不会显示
}
因为这是一种特殊情况,0.1和0.2的和为0.30000000000000004,所以尽量避免对特点的浮点数值产生依赖。

关于Number,存在3个方法,用于将非数值转换为数值:Number(),parseInt(),parseFloat()。其中,Number()用于任何类型,而后两种则用于字符串类型。这里主要谈谈Number()和parseInt()这两种方法的区别。

1、parseInt()可以接收两个参数,第二个参数表示转换时使用的基数;

2、parseInt()会忽略字符串前面的空格,在遇到第一个字符时,如果不是数字字符和符号,则直接返回NAN。因此对于空字符串,parseInt返回NAN,而Number()返回0。

最后要注意的一点是:一元加操作符的操作与Number()函数相同。即它可以实现任何类型到数字的转换,转换对应规则与Number()相同。

var a=false;
a=+a;
alert(a);//"0"
String类型

有一个length属性表示字符串长度。

JavaScript中字符串是不可变的,也就是说对字符串的更改会创建一个新的字符串变量,并且销毁原来的字符串。讲一个值转换为字符串变量有三种方式:toString()和String()以及+“”。在不知道要转换的类型是不是null或undefined的情况下,使用String()。它的执行过程:

        如果值有toString()方法,则调用。否则是null返回“null”,是undefined返回“undefined”。

Object类型

在JavaScript中,object类是所有实例的基础。所有的是根据体的对象都具有object类的方法和属性。

Object类型的属性和方法有:

constructor:保存用于创建当前对象的函数;

hasOwnProperty(propertyName):用于检查属性是否存在;

isPrototypeOf(object):用于检查是否是传入对象的原型;

toString():返回字符串表示;

valueOf():返回对象的字符串、数值、或布尔值表示。

PS:在调用Number()方法传入object时,会首先使用valueOf()方法,如果返回NAN,则再调用toString()方法得到返回值。






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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值