(一)JavaScript小工具库

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

源码目录: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小工具库)