js之类型检查

类型检测

类型检测的方法

  1. typeof

  2. instanceof

  3. Object.prototype.toString

  4. constructor

typeof

typeof操作符返回一个字符串,表示未经计算的操作数的类型

我指举例出异常的几个

typeof undefined; // undefined
​
typeof null;  // object
​
typeof NaN // number
​
typeof [1,2]; // object
​
typeof new Object(); // object

注:typeof操作符适合对基本类型,而对引用数据类型等不合适使用

instanceof

instanceof运算符用于检测一个对象在其原型链中是否存在一个构造函数的proptotype属性。

//左操作数为对象,不是就返回false,右操作数必须是函数对象或者函数构造器,不是就返回`TypeError`异常
obj instanceof constr;  

任何一个构造函数都有一个prototype对象属性,这个对象属性将用new实例化对象的原型对象。

  • instanceof适合用于判断对象是否属于Array、Date和RegExp等内置对象

Object.prototype.toString

可以通过toString来获取每个对象的类型。

检测的时候为了每个对象都能通过Object.prototype.toString()来检测,需要以Function.prototype.call或者Function.prototype.call或者Function.prototype.apply的形式来调用。

Obejct.prototype.toString.call(undefined);
//  "[object Undefined]"
​
Obejct.prototype.toString.call(null);
//  "[object Null]"
​
Obejct.prototype.toString.call(true);
//  "[object Boolean]"
​
Obejct.prototype.toString.call('');
/// "[object String]"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值