2.0.5 • Published 2 years ago
@guanwei/app-javascript v2.0.5
app-javascript
app-javascript是一个轻量级,零依赖工具库,支持服务端和客户端,更多是定制化,供自己使用的,对于treeshake可以很好支持。
安装
npm安装(推荐,可定制化)
npm i @guanwei/app-javascriptlink标签
通用写法:
<script href="//unpkg.com/@guanwei/app-javascript"></script>
<script>
console.log(AppUtils.isClient)
</script> 或者使用 es6 module
<script module>
import { isClient } from 'https://unpkg.com/@guanwei/app-javascript?module'
console.log(isCilent)
</script>Api
| Name | File | Description | Params | Return |
|---|---|---|---|---|
| bindFn | bindFn.ts | 绑定函数上下文 | (fn: Function, ctx: unknown) | any |
| add | calc.ts | 加 | (n1: number, n2: number) | number |
| sub | calc.ts | 减 | (n1: number, n2: number) | number |
| mul | calc.ts | 乘 | (n1: number, n2: number) | number |
| div | calc.ts | 除 | (n1: number, n2: number) | number |
| hasClass | className.ts | 是否含有指定类名 | (element: HTMLElement, cls: string) | boolean |
| addClass | className.ts | 添加指定类名 | (element: HTMLElement, cls: string) | - |
| removeClass | className.ts | 移除指定类名 | (element: HTMLElement, cls: string) | - |
| copy | copy.ts | 简易版深拷贝 | <T = unknown>(source: T, silence?: boolean) | T |
| def | def.ts | 定义对象属性 | (obj: object, key: string \| symbol, value: any) | - |
| isClient | env.ts | 常量:判别是否为客户端 | - | - |
| isFirefox | env.ts | 常量:是否是火狐浏览器 | - | - |
| isAndroid | env.ts | 常量:是否是安卓系统 | - | - |
| isOS | env.ts | 常量:是否是苹果系统 | - | - |
| isWindowsPhone | env.ts | 常量:是否是Win手机系统 | - | - |
| isSymbianos | env.ts | 常量:是否是塞班系统 | - | - |
| isMobile | env.ts | 常量:是否是手机 | - | - |
| getURLParam | getURLParam.ts | 获取链接参数 | (name: string, search?: string) | string \| null |
| looseEqual | looseEqual.ts | 比较两个值是否相等(代码取自 @vue/shared) | (a: any, b: any) | boolean |
| looseIndexOf | looseEqual.ts | 找到数组中指定元素的下标 | (arr: any[], val: any) | number |
| noop | noop.ts | 空函数,用于赋值 | - | - |
| getPathProp | pathProp.ts | 获取指定对象路径属性值 | (target: Record<any, any>, path: string \| Array<string>) | any |
| setPathProp | pathProp.ts | 设置指定对象路径属性值 | (target: Record<any, any>, path: string \| Array<string>, value: any) | boolean |
| getStorage | storage.ts | 获取指定范围的本地储存 | (name: string, content: any) | - |
| setStorage | storage.ts | 设置指定范围的本地储存 | (name: string) | string \| null \| undefined |
| removeStorage | storage.ts | 移除指定范围的本地储存 | (name: string) | - |
| styleInject | styleInject.ts | 在head标签注入一段样式文本 | (css: any, options?: Options) | - |
| toDateString | toDateString.ts | 格式化部分时间格式 | (time?: string \| Date, format?: string) | string |
| toNumber | toNumber.ts | 将输入值格式化为数字 | (val: any) | any |
| trim | trim.ts | 将前后空白移除 | (string: string) | string |
| uuid | uuid.ts | 生成一个uuid | - | string |
| hasOwn | type.ts | 当前值是否含有制定属性 | (val: object, key: string \| symbol) | boolean |
| toRawType | type.ts | 当前值表现的类型名称 | (val: unknown) | string |
| isString | type.ts | 是否是字符串 | (val: unknown) | boolean |
| isNumber | type.ts | 是否是数字 | (val: unknown) | boolean |
| isBoolean | type.ts | 是否是布尔 | (val: unknown) | boolean |
| isBooleanish | type.ts | 是否是布尔或者字符串'true','false' | (val: any) | boolean |
| isSymbol | type.ts | 是否是Symbol值 | (val: unknown) | boolean |
| isRegExp | type.ts | 是否是正则 | (val: unknown) | boolean |
| isNil | type.ts | 是否是null或者undefined | (val: unknown) | boolean |
| isNumeric | type.ts | 是否可转成数字化 | (val: unknown) | boolean |
| isDef | type.ts | 是否定义了存在值,与函数isNil的结果相反 | <T = any>(val?: T) | boolean |
| isDate | type.ts | 是否是日期 | (val: unknown) | boolean |
| isFunction | type.ts | 是否是函数 | (val: unknown) | boolean |
| isArray | type.ts | 是否是数组 | (val: any) | boolean |
| isObject | type.ts | 是否是对象 | (val: unknown) | boolean |
| isPromise | type.ts | 是否是Promise | (val: unknown) | boolean |
| isPlainObject | type.ts | 是否是纯对象,即指向Object | (val: unknown) | boolean |
| isEmptyObject | type.ts | 是否是空对象 | (val: any) | boolean |
| validateURL | validate.ts | 验证链接地址 | (val: string) | boolean |
| validateEmail | validate.ts | 验证邮箱 | (val: string) | boolean |
| validateLetter | validate.ts | 验证字母 | (val: string) | boolean |
| validateMobileNumber | validate.ts | 验证手机号 | (val: string) | boolean |
对比 1.0.0
新增
isClient(2022/01/16):用于判断是客户端还是服务端新增
hasOwn:用于判别对象是否含有此属性- 新增
toRawType:用于判别入参构造名称 - 新增
isBooleanish:用于判别 boolean 值和'true', 'false' - 新增
isSymbol:用于判别 symbol 类型 - 新增
isRegExp:用于判别是否为正则表达式 - 新增
isNumeric:用于判别数字且那些可能是数字的字符串,如 '1', '2' 等 - 新增
isDef:用于判别是否已经定义,它是isNil的非 - 新增
isDate:用于判别是否是日期类型 - 新增
looseIndexOf:Array.findIndex的封装 - 新增
addClass/removeClass/hasClass:对于HTMLElement的类名操作 新增
def:用于定义对象属性更新
arrayEquals:之前仅仅比较数组,现在使用@vue/shared包内的方法looseEqual,更加强大的对比功能,所以借鉴过来- 更新
toNumber:之前直接将非数字变空白,过于暴力和不合理,此次重构,使之更合理化
- 更名
bind=>bindFn - 更名
getStore=>getStorage,setStore=>setStorage,removeStore=>removeStorage - 更名
isNull=>isNil 更名
getKeyValue=>getPathProp,setKeyValue=>setPathProp移除
manba:第三包,依旧推荐可用,只是不在集成了- 移除
throttle/debounce:函数写的依旧不淳熟,推荐第三包如:lodash.throttle,lodash.debounce - 移除
getCookie/setCookie/removeCookie:集成js-cookie,可根据项目再次调整 - 移除
generateId/freeze/trimAll/padLeft/toCN/toInt/cut/escape:使用度偏小 - 移除
beginWith/endWidth(名称拼写错误:已经有可替代函数,如String.prototype.startsWith/String.prototype.endsWith - 移除暂时
extend,请使用Object.assign或者第三方库作为替代