JS中判断数据类型方法总结

本文总结了JavaScript中数据类型检测的三种方法:typeof操作符、instanceof操作符和Object.prototype.toString.call()方法。详细介绍了每种方法的特点及适用场景。

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

JS中数据类型检测方法总结

JS中数据是松散数据类型,总结了几种方式来判断它们的数据类型具体是什么。

数据类型的分类:简单数据类型复杂数据类型

  1. 简单数据类型:数值型,布尔型,字符串型,null,undefined;
  2. 复杂数据类型:引用对象(数组,对象,函数);

第一种:typeof 操作符

语法:
    typeof 变量;
    typeof(变量);

数据检测类型:

console.log(typeof 123);    //number
console.log(typeof '123');  //string
console.log(typeof false);  //boolean
console.log(typeof undefined);  //undefined
console.log(typeof null);   //object
console.log(typeof function fn() { });  //function
console.log(typeof [1, 21]);    //object
console.log(typeof { name: 'zhangsan', age: 22 });  //object

总结:null的类型检测是归为了object,而function是一个函数对象,其他数组和对象都只能检测为object对象。不能更具体的检测类型。

 

第二种instanceof操作符

语法:    变量 instanceof 具体数据类型; 结果返回一个布尔值,显示变量是否是检测的具体数据类型。更多用来检测引用数据类型

var arr = [1, 2, 3];
var obj = {
    name: 'zhangsan',
    age: 22
};
function fn() {
    console.log('1');
};

function Person() {
    // console.log('person');
}
var p = new Person();

console.log(arr instanceof Array);  //true
console.log(arr instanceof Object); //true
console.log(obj instanceof Array);  //false
console.log(obj instanceof Object); //true
console.log(p instanceof Person);   //true
console.log(p instanceof Object);   //true

第三种:Object.prototype.toString.call(变量)检测数据类型;

// 检测数据类型
function typeData(data) {
    var d = Object.prototype.toString.call(data);   //"[object String]"
    return d.slice(8, -1);
}

console.log(typeData(2));   //Number
console.log(typeData('asd'));   //String
console.log(typeData(true));    //Boolean
console.log(typeData(function fn() { }));   //Function
console.log(typeData(null));    //Null
console.log(typeData(undefined));   //Undefined
console.log(typeData([1, ''])); //Array
console.log(typeData({}));  //Object
console.log(typeData(/2/));     //RegExp

 每种各有好处,随情况实用;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值