JS随笔:封装一个type方法,用来判断值的类型

封装一个type方法,用来判断值的类型

  • 思路
    1.首先判断是原始值还是引用值
    用typeof方法

    2.区分引用值
    用toString方法

话不多说,上代码,上注释

function type(target) {
				var ret = typeof(target);//简化代码
				var tem = { //tem的作用是方便后面做比较
					'[object Array]':'array',//数组类型引用值
					'[object Object]':'object',//对象类型引用值
					'[object Number]':'number - object',//包装类:数字类型
					'[object String]':'string - object',//包装类:字符串类型
					'[object Boolean]':'boolean - object',//包装类:布尔类型
				}
				
				if (target === null) {//这一步是因为typeof类型有缺陷,typeof(null)-->返回"object",因此要排除掉
					return null;
				}
				
				if(ret == 'object'){//这一步判断target是否为引用值
					var str = Object.prototype.toString.call(target);//使得str这个变量成为 target调用toString方法后的返回值
					return tem[str];//这里首先看str这个返回值等于上面对象tem里哪一个属性,然后返回对象tem那个对应属性的属性值,就能确切的返回target的数据类型
			
				}else{
					return ret;//当target为原始值时,直接返回target的typeof返回值
				}
				//这里本来要判断function(){}的,但返回的是它本身,else那里面的代码
			}

在后台:

type(new Number(22))
"number - object"

type(null)
null

type('wzy')
"string"

这道题不难,只要思路有了,就能写个大概,最后再完善一下就好了

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值