1. 背景
JS 中的基础类型如 string、number、boolean、function、object、undefined 等(除了 Array),都可以通过 typeof 来进行类型判断,通过源码阅读,可以发现其用了统一的封装函数来实现基础类型的判断。
2. 源码
核心函数位置:func -> helperCreateInTypeof.js
/* eslint-disable valid-typeof */
function helperCreateInTypeof (type) {
return function (obj) {
return typeof obj === type
}
}
module.exports = helperCreateInTypeof
3. 用法
该函数通过闭包,返回一个其他类型判断的函数,如下举例:
/* isNumber.js */
var helperGetTypeOf = require('./helperGetTypeOf')
var isNumber = helperGetTypeOf('number')
module.exports = isNumber
/* isBoolean.js */
var helperCreateInTypeof = require('./helperCreateInTypeof')
var isBoolean = helperCreateInTypeof('boolean')
module.exports = isBoolean
使用者即可通过如下代码来判断某个值是否为期望的基础类型
isNumber(1) // true
isNumber('22') // false
isBoolean(true) // true
isBoolean('222') // false