“世界上本没有路,走的人多了,也就成了路”,走在代码的路上并没有坦途,历经的坎多了,或许才成了道路。
前言
如引言,开发中会经常遇到许多通用的代码
,如手机号、邮箱验证,获取url参数、操作cookie等,然而封装这些常用方法的库并不多见,而且这些方法与自己的项目经验相关,很有可能自己去扩展一些有用的方法,所以还是有必要去实现。
这里想要做的是抛砖引玉
,小伙伴们可以参照作者的思路,自己来实现。
待解决的问题
在实现这个工具库之前,需要做解决以下一些问题
- 需要有
合适的构建工具
,方便我们打包代码,并且易于调试; - 注重
代码质量和开发效率
,有类型推断及静态检查能力; api简单易用
,最好是看一眼就能记住;
综上,作者选择了rollup + webpack + typeScript + jest
来构建及调试代码,如果对这些工具还不熟悉,可以去对应的官网查看文档,还可以结合我后面的github地址,下载源码运行试试。
Rollup
- 一个 JavaScript 模块打包器,可以将小块代码编译成大块复杂的代码。它能帮助我们快速打包代码为CommonJS、ES以及UMD等模块,还能通过静态分析代码,剔除一些未使用的代码。
Webpack
- Webpack也是一个模块打包器,功能更强大,不过在打包、封装js库上来说,rollup比webpack更合适。这里其实可以不用webpack,但借助webpack可以快速搭建本地服务器,方便边写代码边调试,以及搬运html文件。
TypeScript
- TypeScript 是一种由微软开发的自由和开源的编程语言,它是 JavaScript 的一个超集,扩展了 JavaScript 的语法,结合开发工具的静态检查及类型推断能力,能帮助我们编写出更严谨,可靠的代码。
Jest
- Jest是facebook推出的一款测试框架,简单地配置即可验证我们写的方法是否可靠。
几个常用的方法
获取url参数
/**
* get 获取url参数
* @param 参数为空时,获取当前url所有参数;
* @param 参数为1个时,获取当前url的指定参数;
* @param 参数为2个且第二个参数不为true时,获取指定url的指定参数;
* @param 参数为2个且第二个参数为true时,获取指定url的所有参数;
*/
get(): string | Object {
let args = arguments,
len = args.length,
url: string;
if (len == 1 || len == 0) {
url = location.search;
} else {
url = args[0];
}
url = url.substring(url.indexOf('?') + 1);
let arr = url.split('&'),
obj: string | Object = {