判断数据类型

判断数据类型的方法有很多,ypeof,instanceof 等。今天我们主要将Object.prototype.toString.call()进行数据类型的判断。该方法可以说是最准确最全面的判断数据类型的方法。(当然他也还是有不能判断自定义对象的问题存在的)
//使用柯里化函数的方法
function isType(type) {
    return function(val) {
        console.log(Object.prototype.toString.call(val))
        return `[object ${type}]` === Object.prototype.toString.call(val)
    }
}
//创建一个判断输入类型的方法
//(注意传入 type 参数时首字母大写)
let isArr = isType('Null')
//使用方法
console.log(isArr(null))
// true
console.log(isArr([]))
// false

也可以将上面的函数扁平化处理

function isType(type, val) {
    return `[object ${type}]` === Object.prototype.toString.call(val)
}
console.log(isType('Null', null))  //true
console.log(isType('Array', []))  //true

甚至于可以简写为一行代码

const isType = (type, val) =>  `[object ${type}]` === Object.prototype.toString.call(val)

你可能感兴趣的:(判断数据类型)