一个简易的前端业务工具库【tj-jstools】

news/2025/2/22 4:59:57/

简介

  工作两年多了,最近自己总结用 TypeScript 写了一个简易的前端业务工具库: tj-jstools 。有以下功能:

  • 判断js数据类型、获取一个变量或者值的具体类型
  • 手机号脱敏、数值千分位、金额汉字大写转换
  • 数组和tree形数据互转、url参数获取并组合
  • 浏览器存储(Cookie/LoaclStorage/SessionStorage)自定义格式化存储
    如果有用,希望大家给个star,以是对萌新的鼓励!😉

操作使用文档地址

  • 官方文档地址:http://jstools.itbooks.work/
  • GitHub 使用文档地址:https://geniusmanyxh.github.io/tj-jstools/
    在这里插入图片描述

🛠️安装使用方式

npm方式

npm install tj-jstools

浏览器方式

  • jsdelivr的umd格式地址
<script src="https://cdn.jsdelivr.net/npm/tj-jstools@1.3.2/static/umd/index.js"></script>
<script>const {_tj} = windowconsole.log(_tj);
</script>

引入后,查看全局变量中的window._tj对象,里面包含了所有工具函数。

📖简单使用的Demo

判断数据类型Demo

import { isInt, isFloat, isNumber} from 'tj-jstools'const isNumRes = isNumber(12.9); // true
const isIntRes = isInt(12.9); // false
const isFloatRes = isFloat(12.9); // true

当你想确定某一个变量或者值,是否和你预想的一样是可以使用以上这些数据类型判断函数。

当你想获取某一个变量或者值具体的数据类型时,你可以使用以下函数:

import { getType, getArrayAllType, getObjectAllType} from 'tj-jstools'const getTypeRes1 = getType(Array(1)) // array
const getTypeRes2 = getType({}) // object
const getTypeRes3 = getType() // undefined
const getTypeRes4 = getType(1/0) // infinite// 判断数组里面的数据类型const arr = [true,null,undefined,1/0,5,5.01,{},[],()=>{},NaN,'']const arrRes = getArrayAllType(arr) //['boolean', 'null', 'undefined', 'infinite', 'int', 'float','object',// 'array','function','NaN','string']// 判断对象里面的数据类型const testObj = {a: true,b: null,c: undefined,d: 6,e: 6.01,f: 1/0,g: {},h: [],i: () => {}}const objRes = getObjectAllType(testObj)/*
['boolean', 'null', 'undefined', 'int', 'float','infinite','object',  'array', 'function'
]*/

浏览器缓存(cookie/localStorage/sessionStorage)Demo

import { newStorage } from 'tj-jstools'
const Coptions = {prefix:'tj',linkSign: '@',suffix:'jstools',expireTime: 2,unitTime: 'd'
}
// 创建一个操作Cookie的实例
const CInstance = newStorage('cookie',Coptions)//创建一个操作localStorage的实例
const LInstance = newStorage('local',Coptions)// 创建一个操作sessionStorage的实例
const SInstance = newStorage('session',Coptions)// 保存和获取cookie值
CInstance.setFun('test','testValue')
CInstance.getFun('test') // tj@test@jstools: testValue ; 过期时间:2天// 保存和获取localStorage值
LInstance.setFun('test','testValue')
LInstance.getFun('test') // tj@test@jstools: testValue ; 过期时间:2天// 保存和获取sessionStorage值
SInstance.setFun('test','testValue')
SInstance.getFun('test') // tj@test@jstools: testValue ; 过期时间:2天

注意:

  • 对sessionStorage设置过期时间,其实效果不大,会随着浏览器的关闭而消亡

  • 如果cookie不设置expires,cookie 会在对话结束时过期

  • 具体操作可以查看文档:https://geniusmanyxh.github.io/tj-jstools/


👉各类API列表

数据类型篇(DataType)

序号名称功能简介
1isBoolean判断数据是否是boolean类型
2isString判断数据是否是string类型
3isNumber判断数据是否是number类型
4isSymbol判断数据是否是symbol类型
5isUndefined判断数据是否是undefined类型
6isBigint判断数据是否是bigint类型
7isInt判断数据是否是int类型
8isFloat判断数据是否是float类型
9isNaN判断数据是否是NaN类型
10isFinite判断数据是否是finite类型
11isNull判断数据是否是null类型
12isArray判断数据是否是array类型
13isDate判断数据是否是date类型
14isFunction判断数据是否是function类型
15isObject判断数据是否是object类型
16getType判断数据是否是returnTypeStr类型,并返回类型
17getArrayAllType判断数组值是否是returnTypeStr类型,并返回类型
18getArrayTypeDetail判断数组值是否是returnTypeStr类型,并返回类型
19getObjectAllType判断对象属性是否是returnTypeStr类型,并返回类型
20getObjectTypeDetail判断对象属性是否是returnTypeStr类型,并返回类型

字符串篇(String)

序号名称功能简介
1charInCounts计算字符串中指定字符出现的次数
2DTMobile手机号脱敏处理

数值篇(Number)

序号名称功能简介
1formatChineseRMB数字金额转换为大写人民币汉字
2numberThousandsFormat数值千分位格式化处理

数组篇(Array)

序号名称功能简介
1toTreeData将特定数组转为树形结构
2treeToFlat将树形结构扁平化一维数组
3findTreeData查找符合条件的树形节点

URL篇

序号名称功能简介
1getUrlParams获取url路径参数
2converParamsToUrl拼接参数到url路径上

浏览器篇

序号名称功能简介
1isFull判断当前是否全屏
2getFullEl获取全屏元素
3isFullEnabled判断当前是否支持全屏功能
4openFull打开全屏
5closeFull关闭全屏
6toggleFull打开或者关闭全屏
7scrollBackTop返回浏览器顶部
8scrollProgressBar计算当前页面已读内容的百分比占比

浏览器缓存篇(Cookie/LoaclStorage/SessionStorage)

序号名称功能简介
1newStorage生成一个可操作的浏览器缓存实例

实例方法-列表

序号名称功能简介
1setFun设置浏览器缓存的方法
2getFun获取浏览器缓存的方法
3delFun移除浏览器缓存的方法
4existFun监测浏览器缓存的方法
5allkey获取浏览器缓存的key值唯一标识的方法
6clearFun批量清除浏览器缓存的方法

结语

  如果大家对这个工具有其他想法或者提供思路的,以及指出不足的,欢迎在下方留言评论,我会一一细读的,集思广益,才能共同进步!
  另外2023年:祝大家兔年吉祥、“兔”飞猛进、“钱”“兔”似锦、“兔”步青云、“钱”“兔”无量、“兔”来运转、扬眉“兔”气、大展鸿“兔”!


http://www.ppmy.cn/news/22646.html

相关文章

#C. gsy 的浇水计划(线段树+dp)

题目思路考的知识点是线段树dp。我们可以按照dp 4步法来一步步推导、1.dp定义dp[i]代表[1,i]区间被给出线段覆盖的最小花费2.状态转移方程根据dp定义可得当枚举到第x条线,区间为[Lx,Rx],花费为Vx时dp[Rx]min(dp[i](i (Lx - 1) ~ Rx))Vx因为当想要覆盖[1,Rx]的区间就必须在覆盖…

一文带你熟悉内核调试工具 --Ftrace

&#x1f446;&#x1f440;前言Ftrace是一个内部跟踪程序&#xff0c;旨在帮助软件开发人员和系统的设计者去发现内核内部发生了什么。它可以用于调试或分析延迟和发生在用户空间之外的性能问题。ftrace通常被认为是函数跟踪程序&#xff0c;但它实际上是由几个不同的跟踪实用…

SpringBoot第三讲

三、SpringBootMybatisPlusVue增删改查 3.1 查询 后台查询代码&#xff1a; RestController RequestMapping("/t-user") public class TUserController { ​Resourceprivate ITUserService itUserService; ​/*** 查询所有的数据*/GetMappingpublic Result getAll…

一文弄懂Docker基本使用

文章目录初识Docker什么是Docker应用部署的环境问题Docker解决依赖兼容问题Docker解决操作系统环境差异小结Docker和虚拟机的区别Docker架构镜像和容器DockerHubDocker架构小结安装DockerDocker的基本操作镜像操作镜像名称镜像命令案例-拉取、查看镜像案例-保存、导入镜像容器操…

【每日一题Day108】LC1798你能构造出连续值的最大数目 | 贪心

你能构造出连续值的最大数目【LC1798】 You are given an integer array coins of length n which represents the n coins that you own. The value of the ith coin is coins[i]. You can make some value x if you can choose some of your n coins such that their values …

testbench常用语句

与可综合Verilog代码所不同的是&#xff0c;testbench Verilog是在计算机主机上的仿真器中执行的。testbench Verilog的许多构造与C语言相似&#xff0c;我们可在代码中包括复杂的语言结构和顺序语句的算法。 1 always块和initial块 Verilog有两种进程语句&#xff1a;always…

Python爬虫教你爬取视频信息

大家好&#xff0c;我是拉斯&#xff0c;今天分享一个爬取某音视频的一个小案例&#xff0c;大家一起学习 目录前言基本环境配置爬取目标视频获取视频链接1.查看网页源代码2.抓包工具捕捉下载视频(以mp4格式进行保存)获取其他信息并打印(作者名&#xff0c;作品名&#xff0c;…

Go异步任务解决方案 Asynq

今天为大家介绍一个Go处理异步任务的解决方案&#xff1a;Asynq&#xff0c;是一个 Go 库&#xff0c;用于排队任务并与 worker 异步处理它们。它由Redis提供支持&#xff0c;旨在实现可扩展且易于上手。 一、概述 Asynq 是一个 Go 库&#xff0c;用于对任务进行排队并与工作人…