(一)JavaScript小工具库

作者: 自然框架 | 来源:发表于2021-11-20 10:24 被阅读0次

    有一些小的常用的方法,整理起来封装一下,便于使用。

    源码目录:https://naturefw.gitee.io/

    技术栈

    • vite
    • js
    • rollup 打包发布

    安装

    npm i nf-tool
    // 或者
    yarn add nf-tool
    

    功能

    • 验证 JavaScript 的类型
    • 输出调试信息

    用法

    
    import {
      log, // 打印调试信息
      logTime, // 计时
      toTypeString, // Object.prototype.toString.call(val)
      typeName, // 获取可以识别的名称
    
      hasOwnProperty,
      hasOwn,
    
      isFunction, // 验证普通函数
      isAsync, // 验证 async 的函数
      isPromise, // 验证 Promise
      isObject, // 验证 Object
      isArray, // 验证数组
      isString, // 验证字符串
      isNumber, // 验证 number
      isBigInt, // 验证 BigInt
      isBoolean, // 验证 布尔
      isRegExp, // 验证正则类型
      isDate, // 验证日期
      isMap, // 验证 map
      isSet, // 验证 set
      isSymbol, // 验证 Symbol
     
      isNullOrUndefined // null 或者 undefined 返回 true
    } from 'nf-tool'
    
    async function testAsyncFun(params) {
      
    }
    
    function myPromise(params) {
      return new Promise((f1, f2) => {
        f1()
      })
    }
    
    window.__showlog = 2 // 设置后才会打印调试信息
    
    // 开始测试
    const start = () => {
    
      log(' ============ 验证数据类型 ============')
    
      let t = logTime('验证 Function 用时')
      log('\n() => {}:', isFunction(() => {}))
      t.end()
    
      t = logTime('验证 Async 用时')
      log('\nasync () => {}:', isAsync(async () => {}))
      log('async function () {}:', isAsync(testAsyncFun))
      t.end()
      
      t = logTime('验证 isPromise 用时')
      log('\nPromise:', isPromise(myPromise))
      log('Promise:', isPromise(myPromise()))
      t.end()
    
      t = logTime('验证 Object 用时')
      log('\n对象:', isObject({}))
      t.end()
    
      t = logTime('验证 Array 用时:')
      log('\n数组:', isArray([]))
      t.end()
    
      t = logTime('验证 isString 用时:')
      log('\n‘123’:', isString('123'))
      t.end()
    
      t = logTime('验证 isNumber 用时:')
      log('\n123:', isNumber(123))
      t.end()
      
      t = logTime('验证 isBigInt 用时:')
      log('\n123:', isBigInt(123))
      t.end()
      
      t = logTime('验证 isBoolean 用时:')
      log('\ntrue:', isBoolean(true))
      t.end()
      
      t = logTime('验证 isRegExp 用时:')
      log('\nRegExp:', isRegExp(new RegExp(/123/g)))
      t.end()
      
      t = logTime('验证 isDate 用时:')
      log('\nDate:', isDate(new Date()))
      t.end()
      
      t = logTime('验证 isMap 用时:')
      log('\nMap:', isMap(new Map()))
      t.end()
      
      t = logTime('验证 isSet 用时:')
      log('\nSet:', isSet(new Set()))
      t.end()
      
    
      t = logTime('验证 isPromise 用时:')
      // log('\nPromise:', isPromise(() => {return new Promise(()=>{},()=>{}))})
      t.end()
    
      t = logTime('验证 isSymbol 用时:')
      log('\nSymbol(‘123’):', isSymbol(Symbol('123')))
      t.end()
      
      var un
      t = logTime('验证 isNullOrUndefined 用时:')
      log('\nnull:', isNullOrUndefined(null))
      log('未定义:', isNullOrUndefined(un))
      log('字符串:', isNullOrUndefined('qwe'))
      t.end()
      
      const arr = [
        '字符串',
        123,
        ['数组', 123],
        new Date(),
        new Date().valueOf(),
        new Map(),
        new Set()
      ]
    
      t = logTime('typeName 用时:')
      log('\n typeName 的测试')
      arr.forEach(element => {
        log(typeName(element), ':', element.toString())
      })
      t.end()
    

    源码

    https://gitee.com/naturefw/nf-rollup-tool

    在线演示

    https://naturefw.gitee.io/nf-rollup-tool

    相关文章

      网友评论

        本文标题:(一)JavaScript小工具库

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