javascript基础--数据类型,及检测数据类型方法

本文详细介绍了JavaScript中的数据类型,包括基本数据类型如number、string等,以及复杂数据类型如object,并探讨了不同类型间的区别和如何进行类型检测。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

javascript数据类型: 

1.基本数据类型:

        number,string,undefined,boolean,null(表示一个空对象指针)

2.复杂数据类型

        object 包括:array,function,data...


数据类型检测方式:

1.typeof:只能检测基本数据类型

例:

var a = '1'

typeof a //string


 不难发现null,array,{} typeof判断出的类型都为'object',所以typeof的无法区分数组和对象之间的类型。

2.instanceof:判断是否是对象的实例,构造函数prototype属性所指的对象是否在另一个检索对象的原型链上。

用法:

var obj = new String('123')

console.log(obj instanceof String)

instanceof 可以在继承关系中用来判断一个实例是否属于它的父类型(最主要就是检索原型链)

child继承父类parent,child的原型链指向parent的实例。instanceof会检索child类的原型链。会找到child的父类parent。parent的父类Object.直到整个原型链检索完毕。所以会有以下输出结果。


instanceof只检测对象类型  不能检测Number这种基本类型

3.Object.prototype.toString.call()




 记住"[object Null]"都是字符串

//判读数组
function isArray(value){ 
return Object.prototype.toString.call(value) == "[object Array]"//true
}
isArray(a)

//判读Json
function isJson(value){ 
return Window.JSON && Object.prototype.toString.call(value) == "[object JSON]"//true

}

第三种方法是比较实用的。

在总结下:

typeof只能检测基本数据类型,区分不了array和对象。

instanceof 只能检测对象类型,不能检测Number这种非对象类型

Object.prototype.toString.call(value)是比较通用的检测数据类型方式,这中方式也可以检测JSON和正则


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值