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

简介: 前端业务工具库:使用TypeScript编写有关js数据类型、浏览器信息、浏览器存储、url、字符串、数值、数组、对象等相关操作,让业务逻辑简单化。

简介

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

  • 判断js数据类型、获取一个变量或者值的具体类型
  • 手机号脱敏、数值千分位、金额汉字大写转换
  • 数组和tree形数据互转、url参数获取并组合
  • 浏览器存储(Cookie/LoaclStorage/SessionStorage)自定义格式化存储

如果有用,希望大家给个star,以是对萌新的鼓励!😉

操作使用文档地址

在这里插入图片描述

🛠️安装使用方式

npm方式

npm install tj-jstools

浏览器方式

<script src="https://cdn.jsdelivr.net/npm/tj-jstools@1.3.2/static/umd/index.js"></script>
<script>
  const {_tj} = window
  console.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)

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

字符串篇(String)

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

数值篇(Number)

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

数组篇(Array)

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

URL篇

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

浏览器篇

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

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

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

实例方法-列表

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

结语

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

相关文章
|
2月前
|
缓存 移动开发 Rust
前端构建工具 Mako 开源了
Hi,我是 sorrycc,Mako 的主要负责人之一,也是 Umi、Dva、Father 等库的作者。 很开心,Mako 终于开源了! Github 地址:https://github.com/umijs/mako/ 今天和大家正式介绍下他。
118 3
|
1月前
|
前端开发 JavaScript API
探索React Hooks:前端开发的革命性工具
【10月更文挑战第5天】探索React Hooks:前端开发的革命性工具
|
5天前
|
监控 前端开发 JavaScript
前端稳定性工具-Sentry
【11月更文挑战第9天】Sentry 是一个开源的错误和性能监控平台,支持多种编程语言和框架。它能够捕获前端应用中的各种错误和性能问题,提供详细的错误信息和用户行为关联,帮助开发团队快速定位和解决问题,优化应用性能。但需注意隐私保护、数据准确性和成本控制。
|
12天前
|
前端开发 JavaScript API
前端开发的秘密武器:这些工具让你轻松应对各种复杂动画效果!
【10月更文挑战第30天】前端开发中,动画效果为页面增添了无限生机。CSS3的@keyframes规则和JavaScript动画库如GSAP、Anime.js等,使开发者能轻松实现从简单到复杂的动画效果。掌握动画原理和设计原则,结合工具和库,可以创造出既美观又实用的动画,提升用户体验。
34 4
|
11天前
|
Web App开发 前端开发 JavaScript
前端开发的秘密武器:这些工具让你轻松应对各种复杂布局!
【10月更文挑战第31天】前端开发充满挑战,尤其是在处理复杂布局时。本文介绍了几种关键工具和技术,如HTML和CSS基础、Firefox开发者工具、Visual Studio Code以及Vue、React和Angular等前端框架,帮助开发者高效应对复杂布局,提升代码质量和用户体验。
24 2
|
20天前
|
前端开发 JavaScript
除了 jsPDF,还有哪些前端库可以用于生成 PDF?
【10月更文挑战第21天】这些前端库都有各自的特点和优势,你可以根据具体的项目需求、技术栈以及对功能的要求来选择合适的库。不同的库在使用方法、性能表现以及功能支持上可能会有所差异,需要根据实际情况进行评估和选择。
|
29天前
|
自然语言处理 前端开发 JavaScript
推荐 10 个前端开发会用到的工具网站
本文介绍了多个前端开发工具,包括 Web Design Museum、Landing Page、Google Fonts、Lorem Ipsum、Animista、Blobmaker、Spline、CodeToGo、UnusedCSS 和 Responsively,帮助开发者提高效率和项目质量。这些工具涵盖了设计、动画、代码片段管理、响应式测试等多个方面。
66 0
推荐 10 个前端开发会用到的工具网站
|
30天前
|
存储 弹性计算 算法
前端大模型应用笔记(四):如何在资源受限例如1核和1G内存的端侧或ECS上运行一个合适的向量存储库及如何优化
本文探讨了在资源受限的嵌入式设备(如1核处理器和1GB内存)上实现高效向量存储和检索的方法,旨在支持端侧大模型应用。文章分析了Annoy、HNSWLib、NMSLib、FLANN、VP-Trees和Lshbox等向量存储库的特点与适用场景,推荐Annoy作为多数情况下的首选方案,并提出了数据预处理、索引优化、查询优化等策略以提升性能。通过这些方法,即使在资源受限的环境中也能实现高效的向量检索。
|
1月前
|
存储 前端开发 JavaScript
🚀 10 个 GitHub 存储库,助你成为前端巨匠✨
本文介绍了10个极具价值的GitHub存储库,旨在帮助各级JavaScript开发人员提升技能。这些资源涵盖了从基本概念到高级算法、编码风格指南、面试准备等各个方面,包括经典书籍、实用工具和面试手册。无论您是刚入门的新手还是有经验的开发者,这些存储库都能为您提供丰富的学习资源,助您在JavaScript领域更进一步。探索这些资源,开启您的学习之旅吧!
49 0
🚀 10 个 GitHub 存储库,助你成为前端巨匠✨
|
1月前
|
Web App开发 前端开发 开发工具
2024前端开发工具推荐
本文推荐了2024年最受前端开发者欢迎的十款工具,包括Visual Studio Code、Dreamweaver、Sublime Text、WebStorm、Atom、HBuilder、Chrome Developer Tools、Figma、Postman和Git。这些工具覆盖了代码编辑、调试、版本控制及API开发等多个方面,旨在帮助开发者提高效率和代码质量,让开发工作更高效、更愉快。