夜下客

繁体版 简体版
夜下客 > JS修炼法则 > 第4章 JS类型判断

第4章 JS类型判断

ative code] 的函数体

3-1. 优势

确定任何对象的特定类型

3-2. 代码实践

Object.prototype.toString.call(null) // "[object Null]"

Object.prototype.toString.call(undefined) // "[object Undefined]"

Object.prototype.toString.call('aj') // "[object String]"

Object.prototype.toString.call(100) // "[object Number]"

Object.prototype.toString.call(true) // "[object Boolean]"

Object.prototype.toString.call(Symbol()) // "[object Symbol]"

Object.prototype.toString.call(BigInt(100)) // "[object BigInt]"

Object.prototype.toString.call({}) // "[object Object]"

Object.prototype.toString.call([]) // "[object Array]"

Object.prototype.toString.call(new Date()) // "[object Date]"

function Fn() {}

Object.prototype.toString.call(Fn) // "[object Function]"

let reg = /^1/g

Object.prototype.toString.call(reg) // "[object RegExp]"

/** JS数据类型 */

export enum DataType {

NULL = 'Null',

UNDEFINED = 'Undefined',

STRING = 'String',

NUMBER = 'Number',

BOOLEAN = 'Boolean',

SYMBOL = 'Symbol',

BIGINT = 'BigInt',

OBJECT = 'Object',

ARRAY = 'Array',

DATE = 'Date',

FUNCTION = 'Function',

REGEXP = 'RegExp',

/**

* 获取数据类型

* @param {any} data 输入数据

* @returns {DataType} 数据数据的数据类型

*/

export const getDataType = (data: any): DataType => Object.prototype.toString.call(data).slice(8, -1) as DataType;

3-3. 封装功能函数

封装成一个功能函数,可以得到数据类型:

/**

* 获取数据类型 方案一:数组切割

* @author 阿吉

* @param {Any} val

* @returns {String} 数据类型

*/

const getTypeObject = (val) => Object.prototype.toString.call(val).slice(8, -1)

const getTypeReflect = (val) =>

『加入书签,方便阅读』