有一些小的常用的方法,整理起来封装一下,便于使用。
技术栈
- 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