js如何判断数据类型和数组类型整理

本文介绍了JavaScript中使用typeof、instanceof及Object.prototype.toString等方法进行数据类型判断的技术细节。包括基本类型的判断、数组与对象类型的区分,以及一种适用于所有数据类型判断的通用方法。

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

一、typeof可以判断部分数据类型

在 JavaScript 里使用 typeof 来判断数据类型,只能区分基本类型,即“number”,”string”,”undefined”,”boolean”,”object” 五种。

对于数组、函数、对象来说,其关系错综复杂,使用 typeof 都会统一返回 “object” 字符串。

var str="abc";
console.log(typeof(str));    //string

var num=123;
console.log(typeof(num));   //number
console.log(num instanceof Number)
var tr=false;
console.log(typeof(tr));   //boolean

var a;
console.log(typeof(a));   //undefind

//typeof无法区分null、数组、对象类型,这三种用typeof都会返回object
如下面的例子:
var aa=null;
console.log(typeof(aa));   //object 

var arr=[];
console.log(typeof(arr));    //object

var obj={}
console.log(typeof(obj));  //object

二、instanceof/constructor可以判断数组和对象类型

//instanceof方法
var arr=[];
console.log(arr instance Array); //true

//constructor方法
var arr={};
console.log(arr.constructor==Object); //true

三、Object.prototype.toString`判断所有数据类型——简单通用的方法

console.log(Object.prototype.toString.call(123)) //[object Number]
console.log(Object.prototype.toString.call('123')) //[object String]
console.log(Object.prototype.toString.call(undefined)) //[object Undefined]
console.log(Object.prototype.toString.call(true)) //[object Boolean]
console.log(Object.prototype.toString.call({})) //[object Object]
console.log(Object.prototype.toString.call([])) //[object Array]
console.log(Object.prototype.toString.call(function(){})) //[object Function]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值