美文网首页
非空校验 | 类型判断

非空校验 | 类型判断

作者: 码农私房菜 | 来源:发表于2022-12-27 17:28 被阅读0次

基本数据类型: number、string、boolean、undefined、null、 ES6:symbol 独一无二的值、 ES10:bigint

引用数据类型: Object、Array、Function

/**
 * 非空校验 | 类型判断
 * @param param 非空校验数据
 * @returns `{
        value: 值,
        isEmpty: 值无效:true , 值有效:false,
        type: 值类型,
    }`
 */

export function checkingValidityOrType(param: any) {
    const paramType = Object.prototype.toString.call(param).slice(8, -1)

    const obj: any = {
        value: param,
        isEmpty: false,
        type: paramType,
    }

    switch (paramType) {
        case 'String':
            const trimParam = ('' + param).trim().toLowerCase()

            if (trimParam + '' === 'null') {
                obj.value = null
                obj.isEmpty = true
            } else if (trimParam + '' === 'undefined') {
                obj.value = undefined
                obj.isEmpty = true
            } else if (trimParam + '' === 'nan') {
                obj.value = NaN
                obj.isEmpty = true
            } else if (trimParam + '' === '') {
                obj.value = ''
                obj.isEmpty = true
            } else {
                obj.value = param
            }
            break

        case 'Number':
            obj.isEmpty = ('' + param).trim().toLowerCase() !== 'nan' ? false : true
            break

        case 'Boolean':
            obj.isEmpty = param
            break

        case 'Null':
            obj.value = null
            obj.isEmpty = true
            break

        case 'Undefined':
            obj.value = undefined
            obj.isEmpty = true
            break
        case 'Array':
            obj.isEmpty = !param.length
            break
        case 'Object':
            obj.isEmpty = JSON.stringify(param) === '{}'
            break
        case 'Function':
            break
        case 'Symbol':
            break
        case 'BigInt':
            obj.isEmpty = param ? false : true
            break

        default:
            break
    }

    return obj
}

相关文章

  • 十一. excel校验数据工具类

    一. 概述 在开发中, 我们会做过很多的excel导入操作, 数据的校验无非就是: 非空判断 / 数据类型判断 /...

  • 1.Kotlin空安全

    1.可空类型和非空类型 在Kotlin中,类型系统通过?来判断一个引用是否可以容纳null。非空类型声明如下: 如...

  • 2018-11-08

    一、前后端 前端1.收集数据:输入数据绑定提交接口2.数据校验:判断位长,判断类型3.数据校验:判断位长,判断类型...

  • Kotlin入门(二)空安全,空类型和非空类型

    可空类型和非空类型 不加问号的类型都是非空类型,非空类型不能赋 null 值. 返回值为非空类型的函数不也能返回 ...

  • 判断非空

    import cn.hutool.core.collection.CollUtil;

  • Kotlin空安全

    可空类型与非空类型 在 Kotlin 中,类型分为可空引用和非空引用。例如,String 类型的常规变量不能容纳 ...

  • JavaScript总结(十)--非空判断

    非空判断

  • Kotlin 空安全

    可空类型与非空类型 在 Kotlin 中,类型区分引用可以为 null (可空引用),或不能为 null(非空引用...

  • swift 初步学习笔记(一)

    一、构造便利函数 二、String 截取字符串 三、(取值/加载)方式 四、可选类型非空判断

  • JavaScript - 4.数据类型判断

    数据类型判断 节点类型 nodeType 数据类型 typeof 方法 数组 Array 的判断 非数字的判断

网友评论

      本文标题:非空校验 | 类型判断

      本文链接:https://www.haomeiwen.com/subject/dptaqdtx.html