2.0.5 • Published 8 months ago
@guanwei/app-javascript v2.0.5
app-javascript
app-javascript
是一个轻量级,零依赖工具库,支持服务端和客户端,更多是定制化,供自己使用的,对于treeshake
可以很好支持。
安装
npm
安装(推荐,可定制化)
npm i @guanwei/app-javascript
link
标签
通用写法:
<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
或者第三方库作为替代