2.0.5 • Published 8 months ago

@guanwei/app-javascript v2.0.5

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

app-javascript

app-javascript是一个轻量级,零依赖工具库,支持服务端和客户端,更多是定制化,供自己使用的,对于treeshake可以很好支持。

安装

  1. npm安装(推荐,可定制化)
npm i @guanwei/app-javascript
  1. 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

NameFileDescriptionParamsReturn
bindFnbindFn.ts绑定函数上下文(fn: Function, ctx: unknown)any
addcalc.ts(n1: number, n2: number)number
subcalc.ts(n1: number, n2: number)number
mulcalc.ts(n1: number, n2: number)number
divcalc.ts(n1: number, n2: number)number
hasClassclassName.ts是否含有指定类名(element: HTMLElement, cls: string)boolean
addClassclassName.ts添加指定类名(element: HTMLElement, cls: string)-
removeClassclassName.ts移除指定类名(element: HTMLElement, cls: string)-
copycopy.ts简易版深拷贝<T = unknown>(source: T, silence?: boolean)T
defdef.ts定义对象属性(obj: object, key: string \| symbol, value: any)-
isClientenv.ts常量:判别是否为客户端--
isFirefoxenv.ts常量:是否是火狐浏览器--
isAndroidenv.ts常量:是否是安卓系统--
isOSenv.ts常量:是否是苹果系统--
isWindowsPhoneenv.ts常量:是否是Win手机系统--
isSymbianosenv.ts常量:是否是塞班系统--
isMobileenv.ts常量:是否是手机--
getURLParamgetURLParam.ts获取链接参数(name: string, search?: string)string \| null
looseEquallooseEqual.ts比较两个值是否相等(代码取自 @vue/shared)(a: any, b: any)boolean
looseIndexOflooseEqual.ts找到数组中指定元素的下标(arr: any[], val: any)number
noopnoop.ts空函数,用于赋值--
getPathProppathProp.ts获取指定对象路径属性值(target: Record<any, any>, path: string \| Array<string>)any
setPathProppathProp.ts设置指定对象路径属性值(target: Record<any, any>, path: string \| Array<string>, value: any)boolean
getStoragestorage.ts获取指定范围的本地储存(name: string, content: any)-
setStoragestorage.ts设置指定范围的本地储存(name: string)string \| null \| undefined
removeStoragestorage.ts移除指定范围的本地储存(name: string)-
styleInjectstyleInject.tshead标签注入一段样式文本(css: any, options?: Options)-
toDateStringtoDateString.ts格式化部分时间格式(time?: string \| Date, format?: string)string
toNumbertoNumber.ts将输入值格式化为数字(val: any)any
trimtrim.ts将前后空白移除(string: string)string
uuiduuid.ts生成一个uuid-string
hasOwntype.ts当前值是否含有制定属性(val: object, key: string \| symbol)boolean
toRawTypetype.ts当前值表现的类型名称(val: unknown)string
isStringtype.ts是否是字符串(val: unknown)boolean
isNumbertype.ts是否是数字(val: unknown)boolean
isBooleantype.ts是否是布尔(val: unknown)boolean
isBooleanishtype.ts是否是布尔或者字符串'true''false'(val: any)boolean
isSymboltype.ts是否是Symbol(val: unknown)boolean
isRegExptype.ts是否是正则(val: unknown)boolean
isNiltype.ts是否是null或者undefined(val: unknown)boolean
isNumerictype.ts是否可转成数字化(val: unknown)boolean
isDeftype.ts是否定义了存在值,与函数isNil的结果相反<T = any>(val?: T)boolean
isDatetype.ts是否是日期(val: unknown)boolean
isFunctiontype.ts是否是函数(val: unknown)boolean
isArraytype.ts是否是数组(val: any)boolean
isObjecttype.ts是否是对象(val: unknown)boolean
isPromisetype.ts是否是Promise(val: unknown)boolean
isPlainObjecttype.ts是否是纯对象,即指向Object(val: unknown)boolean
isEmptyObjecttype.ts是否是空对象(val: any)boolean
validateURLvalidate.ts验证链接地址(val: string)boolean
validateEmailvalidate.ts验证邮箱(val: string)boolean
validateLettervalidate.ts验证字母(val: string)boolean
validateMobileNumbervalidate.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:用于判别是否是日期类型
  • 新增looseIndexOfArray.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.throttlelodash.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或者第三方库作为替代