JS中类型判断

基本类型

  • undefined
  • null
  • Boolean
  • Number
  • String
  • Object
  • Symbol(ES6)

常见的引用类型

  • function
  • Array
  • set
  • map

一般来说有三种检测类型的方法:typeofinstanceofObject.proprety.toString.call()

typeof

//typeof
console.log("typeof:")
console.log(typeof(undefined)); //undefined
console.log(typeof(null)); //object
console.log(typeof(false)); //boolean
console.log(typeof(123)); //number
console.log(typeof("123")); //string
console.log(typeof({})); //object
console.log(typeof(Symbol(1)));//symbol
console.log(typeof([])); //object

instanceof

console.log("instanceof:")
// console.log(undefined instanceof undefined); //报错
// console.log(null instanceof null); // 报错
console.log(false instanceof Boolean);
console.log(new Boolean(false) instanceof Boolean);
console.log(123 instanceof Number);
console.log(new Number(123) instanceof Number);
console.log("123" instanceof String);
console.log(new String("123") instanceof String);
console.log({} instanceof Object);
console.log(Symbol(1) instanceof Symbol);
console.log([] instanceof Array);

在这里插入图片描述
instanceof的原理是查找对象中的原型链上是否有第二个参数的构造函数,如果有则返回true,反之false。

Object.proprety.toString.call()

console.log("Object.property.toString.call():")
//Object.property.toString.call()
console.log(Object.prototype.toString.call(undefined)) //报错
console.log(Object.prototype.toString.call(null)) //报错
console.log(Object.prototype.toString.call(false))
console.log( Object.prototype.toString.call(123))
console.log(Object.prototype.toString.call("123"))
console.log(Object.prototype.toString.call({}));
console.log(Object.prototype.toString.call(Symbol(1)));
console.log(Object.prototype.toString.call([]));

在这里插入图片描述

在检测基本类型如,number、boolean时会将其转为对应的引用类型。

参考

红宝书
https://blog.youkuaiyun.com/zjy_android_blog/article/details/81023177

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值