UNPKG

jslib-tools

Version:

js工具库 封装常用的工具函数 如深拷贝 时间转换日期格式化、浏览器判断等,提高开发效率

321 lines (283 loc) 12.2 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>JSDoc: Home</title> <script src="scripts/prettify/prettify.js"> </script> <script src="scripts/prettify/lang-css.js"> </script> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css"> <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css"> </head> <body> <div id="main"> <h1 class="page-title">Home</h1> <h3> </h3> <section> <article><!-- * @Author: zhangyu * @Email: zhangdulin@outlook.com * @Date: 2021-06-08 11:30:40 * @LastEditors: zhangyu * @LastEditTime: 2021-08-25 15:20:59 * @Description: --> <p><a href="https://opensource.org/licenses/mit-license.php"><img src="https://badges.frapsoft.com/os/mit/mit.svg?v=103" alt="MIT Licence"></a> <a href="https://www.npmjs.com/package/jslib-tools"><img src="https://img.shields.io/eclipse-marketplace/dt/notepad4e.svg" alt="Eclipse Marketplace"></a> <img src="https://img.shields.io/npm/v/npm.svg" alt="NpmVersion"></p> <h3>Description:</h3> <p>前端 js 工具库: 封装常用的工具函数,如日期格式化、浏览器判断等,提高开发效率</p> <h2>Todo</h2> <ul> <li>[√] 引入代码校验工具 eslint</li> <li>[√] jsdocs typedocs 自动化生成 api 文档</li> <li>[√] 测试覆盖率统计 coverage</li> <li>[√] 支持Typescript</li> <li>[√] 支持浏览器环境,node 环境、es6 环境</li> </ul> <h3>如何使用:</h3> <ol> <li>直接下载 <code>dist</code> 目录下的 <code>jtools.min.js</code> 使用,支持 UMD 通用模块规范</li> <li>使用 npm 安装</li> </ol> <h4>浏览器:</h4> <pre class="prettyprint source lang-js"><code>&lt;script src=&quot;jtools.min.js&quot;>&lt;/script> &lt;script> var result = jtools.deepCopy({a:1}) &lt;/script> </code></pre> <h4>npm:</h4> <p><code>npm i jslib-tools</code></p> <h5>全部加载(webpack、RequireJS、SeaJS 等):</h5> <pre class="prettyprint source lang-js"><code>var jtools = require(&quot;jslib-tools&quot;); var result = jtools.deepCopy({a:1}); </code></pre> <h4>es6</h4> <pre class="prettyprint source lang-js"><code>import jtools from &quot;jslib-tools&quot;; var result = jtools.deepCopy({a:1}); </code></pre> <h3>按需加载</h3> <p>结合<a href="https://github.com/Pasoul/babel-plugin-import-load">babel-plugin-import-load</a>按需加载可以极大的减小依赖包的体积</p> <pre class="prettyprint source lang-js"><code>import { add } from &quot;jslib-tools&quot;; var result = deepCopy({a:1}); </code></pre> <h4>自动化生成文档</h4> <p><a href="http://www.css88.com/doc/jsdoc/about-configuring-jsdoc.html">JSDoc</a>是一个根据 javascript 文件中注释信息,生成 JavaScript 应用程序或库、模块的 API 文档 的工具。你可以使用他记录如:命名空间,类,方法,方法参数等。类似 JavaDoc 和 PHPDoc。现在很多编辑器或 IDE 中还可以通过 JSDoc 直接或使用插件生成智能提示。从而使开发者很容易了解整个类和其中的属性和方法,并且快速知道如何使用,从而提高开发效率,降低维护成本。 <a href="https://typedoc.org/">typedoc</a> 是根据typescript注释生成的文档</p> <p>文件 <code>npm run typedoc</code> api-docs: typescript 方法文档</p> <p><code>npm run doc</code> docs: js 方法文档</p> <h3>扩展</h3> <p>如果你想添加自己的工具库,在 <code>src</code> 目录创建文件,对应 <code>test</code> 目录添加测试用例,执行 <code>npm run test</code></p> <h3>utils</h3> <p>vue 和 常用插件 axios 封装工具类</p> <h3>迭代记录</h3> <h4>0.1.3</h4> <pre class="prettyprint source"><code>增加 getHttpBase64 获取网络图片转成base64 Regs 正则校验对象 包括手机号 邮箱等常用正则规则 getUUID 随机字符串 前端设置唯一id appendJs 插入js 支持回调 clipboardObj 复制和获取黏贴内容 cursortPosition 获取焦点光标控制 sleepSync 睡眠 sleepAction 延时执行 objTools 对象操作 判断key 对象相等 getGlobal, setGlobal, globalLib, removeGlobalItem window对象操作等 arrayTools 数组相关操作 arrayToObject 数组转对象 arrayMoveMutate 数组移动位置原数组 arrayMove 数组移动位置返回新数组 judgeTools 判断对象数组等类型方法 byteTools b2size 自动转换合适的单位 bytes 自定义设置转换的单位 jsonTools decode_url_param, json_replace, json_encode, json_decode 对象字符串转换等 store cookie storage --- 删除 isMobile b2size </code></pre> <h4>0.1.4</h4> <ul> <li>增加</li> </ul> <ol> <li>judgeTools.isJSONStringify</li> </ol> <blockquote> <p>判断字符串是否可以转换对象</p> </blockquote> <ol start="2"> <li>createWebsocket</li> </ol> <blockquote> <p>创建 websocket</p> </blockquote> <ol start="3"> <li>arrayTools.arrVals</li> </ol> <blockquote> <p>根据指定的键或索引抽取数组项的值</p> </blockquote> <ol start="4"> <li>arrayTools.arrFibonacci</li> </ol> <blockquote> <p>按条件产生数组 arr(5,2,2) =&gt; [2,4,6,8,10]</p> </blockquote> <ol start="5"> <li>objTools.alias</li> </ol> <blockquote> <p>给对象增加别名</p> </blockquote> <ol start="7"> <li>objTransfer <ol> <li>objTransfer.toLower</li> <li>objTransfer.toUpper</li> <li>objTransfer.toArray</li> <li>objTransfer.makeArray</li> </ol> </li> <li>judgeTools <ol> <li>judgeTools.isDiff</li> </ol> <blockquote> <p>判断对象是否相等</p> </blockquote> </li> <li>strTransfer <ol> <li>strTransfer.trim</li> </ol> <blockquote> <p>方法是去掉字符串的开头和结尾的空白符</p> </blockquote> <ol start="2"> <li>strTransfer.titleize</li> </ol> <blockquote> <p>将每个单词的首字母转换为大写</p> </blockquote> <ol start="3"> <li>strTransfer.camelize</li> </ol> <blockquote> <p>驼峰化</p> </blockquote> <ol start="4"> <li>strTransfer.dasherize</li> </ol> <blockquote> <p>中划线化</p> </blockquote> <ol start="5"> <li>strTransfer.escapeHTML</li> </ol> <blockquote> <p>将HTML特殊字符转换成等值的实体</p> </blockquote> <ol start="6"> <li>strTransfer.unescapeHTML</li> </ol> <blockquote> <p>实体字符转换为等值的HTML</p> </blockquote> </li> </ol> <h4>0.1.5</h4> <ul> <li>增加</li> </ul> <ol> <li>objTools <ol> <li>objTools.extend</li> </ol> <blockquote> <p>源对象(source)的所有可枚举且目标对象(target)不存在的属性, 复制到目标对象</p> </blockquote> <ol start="2"> <li>objTools.toMap</li> </ol> <blockquote> <p>将数组或类数组转换为键值对 eg: ['a','b'] =&gt; {a:0,b:1}</p> </blockquote> <ol start="2"> <li>objTools.toObjectMap</li> </ol> <blockquote> <p>将对象数组转换为键值对 eg: [{name:'a',value:1},{name:'b',value:2}] =&gt; {a:1,b:2}</p> </blockquote> <ol start="2"> <li>objTools.getChangedData</li> </ol> <blockquote> <p>将目标对象中和源对象值不同的数据作为键值对返回</p> </blockquote> </li> </ol> <h4>0.1.6</h4> <ul> <li>增加</li> </ul> <ol> <li>objTools <ol> <li>objTools.objectConversionToList</li> </ol> <blockquote> <p>目标和对象组合转换成数组 target{name:'1',age:'58'} &amp;&amp; formattedObject{name:'你好',age:'年龄'} =&gt; [{label:'你好':,value:'1'},{label:'年龄':,value:'58'}]</p> </blockquote> <ol start="2"> <li>objTools.objectToArray</li> </ol> <blockquote> <p>判断对象转换数组</p> </blockquote> <ol start="3"> <li>objTools.sortMapByKey</li> </ol> <blockquote> <p>根据对象的key排序 默认顺序</p> </blockquote> </li> <li>judgeTools <ol> <li>judgeTools.isObjEmpty</li> </ol> <blockquote> <p>判断对象 或者 数组是否是空</p> </blockquote> <ol> <li>judgeTools.compareSize</li> </ol> <blockquote> <p>判断大小 用来sort等 返回 -1 0 1</p> </blockquote> </li> <li>strTransfer <ol> <li>strTransfer.toSimplifiedChinese</li> </ol> <blockquote> <p>阿拉伯数字转换为简写汉字</p> </blockquote> </li> </ol></article> </section> </div> <nav> <h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#alias">alias</a></li><li><a href="global.html#arrayMove">arrayMove</a></li><li><a href="global.html#arrayMoveMutate">arrayMoveMutate</a></li><li><a href="global.html#arrayToObject">arrayToObject</a></li><li><a href="global.html#arrayToTree">arrayToTree</a></li><li><a href="global.html#arrFibonacci">arrFibonacci</a></li><li><a href="global.html#arrVals">arrVals</a></li><li><a href="global.html#callHandler">callHandler</a></li><li><a href="global.html#camelize">camelize</a></li><li><a href="global.html#checkInt">checkInt</a></li><li><a href="global.html#checkNum">checkNum</a></li><li><a href="global.html#clipboardObj">clipboardObj</a></li><li><a href="global.html#compareSize">compareSize</a></li><li><a href="global.html#cookie">cookie</a></li><li><a href="global.html#cursortPosition">cursortPosition</a></li><li><a href="global.html#dasherize">dasherize</a></li><li><a href="global.html#dateFormat1">dateFormat1</a></li><li><a href="global.html#dateFormat2">dateFormat2</a></li><li><a href="global.html#debounce">debounce</a></li><li><a href="global.html#decode_url_param">decode_url_param</a></li><li><a href="global.html#def">def</a></li><li><a href="global.html#elDateFormat">elDateFormat</a></li><li><a href="global.html#escapeHTML">escapeHTML</a></li><li><a href="global.html#exportXls">exportXls</a></li><li><a href="global.html#extend">extend</a></li><li><a href="global.html#getBrowserModel">getBrowserModel</a></li><li><a href="global.html#getChangedData">getChangedData</a></li><li><a href="global.html#getChildren">getChildren</a></li><li><a href="global.html#getCookie">getCookie</a></li><li><a href="global.html#getDefaultAvatar">getDefaultAvatar</a></li><li><a href="global.html#getDeviceModel">getDeviceModel</a></li><li><a href="global.html#getHttpBase64">getHttpBase64</a></li><li><a href="global.html#getImgBase64">getImgBase64</a></li><li><a href="global.html#getThumbnails">getThumbnails</a></li><li><a href="global.html#getType">getType</a></li><li><a href="global.html#handleEmoji">handleEmoji</a></li><li><a href="global.html#handleParam">handleParam</a></li><li><a href="global.html#handleText">handleText</a></li><li><a href="global.html#isArray">isArray</a></li><li><a href="global.html#isArrayLike">isArrayLike</a></li><li><a href="global.html#isDiff">isDiff</a></li><li><a href="global.html#isFunc">isFunc</a></li><li><a href="global.html#isInt">isInt</a></li><li><a href="global.html#isNum">isNum</a></li><li><a href="global.html#isObject">isObject</a></li><li><a href="global.html#isObjEmpty">isObjEmpty</a></li><li><a href="global.html#isUInt">isUInt</a></li><li><a href="global.html#isUNum">isUNum</a></li><li><a href="global.html#makeArray">makeArray</a></li><li><a href="global.html#objectConversionToList">objectConversionToList</a></li><li><a href="global.html#objectToArray">objectToArray</a></li><li><a href="global.html#objTools">objTools</a></li><li><a href="global.html#parseTime">parseTime</a></li><li><a href="global.html#setVideoPlay">setVideoPlay</a></li><li><a href="global.html#sleepAction">sleepAction</a></li><li><a href="global.html#sleepSync">sleepSync</a></li><li><a href="global.html#sortMapByKey">sortMapByKey</a></li><li><a href="global.html#storage">storage</a></li><li><a href="global.html#throttle">throttle</a></li><li><a href="global.html#titleize">titleize</a></li><li><a href="global.html#toArray">toArray</a></li><li><a href="global.html#toLower">toLower</a></li><li><a href="global.html#toMap">toMap</a></li><li><a href="global.html#toObjectMap">toObjectMap</a></li><li><a href="global.html#toSimplifiedChinese">toSimplifiedChinese</a></li><li><a href="global.html#toUpper">toUpper</a></li><li><a href="global.html#unescapeHTML">unescapeHTML</a></li></ul> </nav> <br class="clear"> <footer> Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> on Wed Aug 25 2021 17:57:45 GMT+0800 (GMT+08:00) </footer> <script> prettyPrint(); </script> <script src="scripts/linenumber.js"> </script> </body> </html>