JavaScript-变量类型判断

更多内容,请访问:JavaScript-变量总结

变量类型判断

  1. typeof

常用于基础数据类型判断:

typeof 123 === 'number'; // true
typeof true === 'boolean'; // true 
typeof '123' ===  'string'; // true
typeof undefined === 'undefined'; // true

但是要注意:

typeof null === 'object' // true

对于复杂数据类型判断,除了function之外,其他都返回object

const fn = () => {}
typeof fn === 'function'; // true
typeof new Date() === 'object'; // true
  1. instanceof

instanceof主要用于区分引用数据类型

instanceof运算符:用于检测构造函数的prototype属性是否出现在某个实例对象的原型链上

比如:

const obj = {};
obj instanceof Object; // true

返回ture原因:

首先我们可以列出实例对象obj的原型链:

obj.__proto__ === Object.prototype;
Object.prototype.__proto__ === null;

从实例对象obj的原型链中可以看到Object.prototype是在obj对象的原型链上,所以obj instanceof Object返回true。

  1. constructor

构造函数

当解析函数的时候(还未执行),此时会在函数的原型对象上添加一个constructor方法,指向当前的函数。

例如:

function F() {};
const f = new F();
f.constructor === F; // true

注意:只有对象才能调用constructor,其他基础数据类型不能使用

  1. Object.prototype.toString.call
Object.prototype.toString.call({}) === '[object Object]'; // true
Object.prototype.toString.call([]) === '[object Array]'; // true
Object.prototype.toString.call(123) === '[object Number]'; // true
Object.prototype.toString.call(() => {}) === '[object Function]'; // true
Object.prototype.toString.call(null) === '[object Null]'; // true
Object.prototype.toString.call(undefined) === '[object Undefined]'; // true
Object.prototype.toString.call(true) === '[object Boolean]'; // true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值