面试常考点:定义一个通用校验类型的函数

这里我们采用:Object.prototype.toString.call() 获取类型

话不多说上代码:

function checkType(type) {
    return function (value) {
        return Object.prototype.toString.call(value).slice(8, -1).toLocaleUpperCase() === type.toLocaleUpperCase();
    }
}
var isNumber = checkType('number');//数值
var isString = checkType('string');//字符串
var isUndefined = checkType('undefined');//undefined
var isNull = checkType('null');//null
var isBoolean = checkType('boolean');//布尔值
var isSymbol = checkType('symbol');//symbol
var isObject = checkType('object');//对象
var isArray = checkType('array');//数组
var isDate = checkType('date');//时间对象
var isRegExp = checkType('regExp');//正则表达式
var isFunction = checkType('function');//普通函数
var isAsyncFunction = checkType('asyncFunction');//asyncFunction
var isPromise = checkType('promise');//promise

引入函数,输出结果:

    <script src="./checkType.js"></script>
    <script>
        console.log(isFunction(function () { }))
        console.log(isObject({}))
        console.log(isNumber(11111))
        console.log(isString('111'))
        console.log(isBoolean(false))
        console.log(isNull(null))
        console.log(isArray([]))
        console.log(isDate(new Date()))
        console.log(isRegExp(/^[111]/))
        console.log(isSymbol(Symbol(111)))
        console.log(isPromise(new Promise(res => { }, rej => { })))
        console.log(isAsyncFunction(async function () { }))
    </script>

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值