UNPKG

jslib-tools

Version:

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

371 lines (370 loc) 20 kB
<!doctype html> <html class="default no-js"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>jslib-tools - v0.1.5</title> <meta name="description" content="Documentation for jslib-tools - v0.1.5"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="assets/css/main.css"> <script async src="assets/js/search.js" id="search-script"></script> </head> <body> <header> <div class="tsd-page-toolbar"> <div class="container"> <div class="table-wrap"> <div class="table-cell" id="tsd-search" data-index="assets/js/search.json" data-base="."> <div class="field"> <label for="tsd-search-field" class="tsd-widget search no-caption">Search</label> <input id="tsd-search-field" type="text" /> </div> <ul class="results"> <li class="state loading">Preparing search index...</li> <li class="state failure">The search index is not available</li> </ul> <a href="index.html" class="title">jslib-tools - v0.1.5</a> </div> <div class="table-cell" id="tsd-widgets"> <div id="tsd-filter"> <a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a> <div class="tsd-filter-group"> <div class="tsd-select" id="tsd-filter-visibility"> <span class="tsd-select-label">All</span> <ul class="tsd-select-list"> <li data-value="public">Public</li> <li data-value="protected">Public/Protected</li> <li data-value="private" class="selected">All</li> </ul> </div> <input type="checkbox" id="tsd-filter-inherited" checked /> <label class="tsd-widget" for="tsd-filter-inherited">Inherited</label> <input type="checkbox" id="tsd-filter-externals" checked /> <label class="tsd-widget" for="tsd-filter-externals">Externals</label> </div> </div> <a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a> </div> </div> </div> </div> <div class="tsd-page-title"> <div class="container"> <h1>jslib-tools - v0.1.5</h1> </div> </div> </header> <div class="container container-main"> <div class="row"> <div class="col-8 col-content"> <div class="tsd-panel tsd-typography"> <!-- * @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> <a href="#description" id="description" style="color: inherit; text-decoration: none;"> <h3>Description:</h3> </a> <p>前端 js 工具库: 封装常用的工具函数,如日期格式化、浏览器判断等,提高开发效率</p> <a href="#todo" id="todo" style="color: inherit; text-decoration: none;"> <h2>Todo</h2> </a> <ul> <li>[√] 引入代码校验工具 eslint</li> <li>[√] jsdocs typedocs 自动化生成 api 文档</li> <li>[√] 测试覆盖率统计 coverage</li> <li>[√] 支持Typescript</li> <li>[√] 支持浏览器环境,node 环境、es6 环境</li> </ul> <a href="#如何使用" id="如何使用" style="color: inherit; text-decoration: none;"> <h3>如何使用:</h3> </a> <ol> <li>直接下载 <code>dist</code> 目录下的 <code>jtools.min.js</code> 使用,支持 UMD 通用模块规范</li> <li>使用 npm 安装</li> </ol> <a href="#浏览器:" id="浏览器:" style="color: inherit; text-decoration: none;"> <h4>浏览器:</h4> </a> <pre><code class="language-js"><span style="color: #800000">&lt;script</span><span style="color: #000000"> </span><span style="color: #FF0000">src</span><span style="color: #000000">=</span><span style="color: #A31515">&quot;jtools.min.js&quot;</span><span style="color: #800000">&gt;&lt;/script&gt;</span> <span style="color: #800000">&lt;script&gt;</span> <span style="color: #000000"> var result = jtools.deepCopy(</span><span style="color: #0000FF">{</span><span style="color: #001080">a</span><span style="color: #000000FF">:</span><span style="color: #098658">1</span><span style="color: #0000FF">}</span><span style="color: #000000">)</span> <span style="color: #800000">&lt;/script&gt;</span> </code></pre> <a href="#npm" id="npm" style="color: inherit; text-decoration: none;"> <h4>npm:</h4> </a> <p><code>npm i jslib-tools</code></p> <a href="#全部加载(webpack、requirejs、seajs-等):" id="全部加载(webpack、requirejs、seajs-等):" style="color: inherit; text-decoration: none;"> <h5>全部加载(webpack、RequireJS、SeaJS 等):</h5> </a> <pre><code class="language-js"><span style="color: #0000FF">var</span><span style="color: #000000"> </span><span style="color: #001080">jtools</span><span style="color: #000000"> = </span><span style="color: #795E26">require</span><span style="color: #000000">(</span><span style="color: #A31515">&quot;jslib-tools&quot;</span><span style="color: #000000">);</span> <span style="color: #0000FF">var</span><span style="color: #000000"> </span><span style="color: #001080">result</span><span style="color: #000000"> = </span><span style="color: #001080">jtools</span><span style="color: #000000">.</span><span style="color: #795E26">deepCopy</span><span style="color: #000000">({</span><span style="color: #001080">a:</span><span style="color: #098658">1</span><span style="color: #000000">});</span> </code></pre> <a href="#es6" id="es6" style="color: inherit; text-decoration: none;"> <h4>es6</h4> </a> <pre><code class="language-js"><span style="color: #AF00DB">import</span><span style="color: #000000"> </span><span style="color: #001080">jtools</span><span style="color: #000000"> </span><span style="color: #AF00DB">from</span><span style="color: #000000"> </span><span style="color: #A31515">&quot;jslib-tools&quot;</span><span style="color: #000000">;</span> <span style="color: #0000FF">var</span><span style="color: #000000"> </span><span style="color: #001080">result</span><span style="color: #000000"> = </span><span style="color: #001080">jtools</span><span style="color: #000000">.</span><span style="color: #795E26">deepCopy</span><span style="color: #000000">({</span><span style="color: #001080">a:</span><span style="color: #098658">1</span><span style="color: #000000">});</span> </code></pre> <a href="#按需加载" id="按需加载" style="color: inherit; text-decoration: none;"> <h3>按需加载</h3> </a> <p>结合<a href="https://github.com/Pasoul/babel-plugin-import-load">babel-plugin-import-load</a>按需加载可以极大的减小依赖包的体积</p> <pre><code class="language-js"><span style="color: #AF00DB">import</span><span style="color: #000000"> { </span><span style="color: #001080">add</span><span style="color: #000000"> } </span><span style="color: #AF00DB">from</span><span style="color: #000000"> </span><span style="color: #A31515">&quot;jslib-tools&quot;</span><span style="color: #000000">;</span> <span style="color: #0000FF">var</span><span style="color: #000000"> </span><span style="color: #001080">result</span><span style="color: #000000"> = </span><span style="color: #795E26">deepCopy</span><span style="color: #000000">({</span><span style="color: #001080">a:</span><span style="color: #098658">1</span><span style="color: #000000">});</span> </code></pre> <a href="#自动化生成文档" id="自动化生成文档" style="color: inherit; text-decoration: none;"> <h4>自动化生成文档</h4> </a> <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> <a href="#扩展" id="扩展" style="color: inherit; text-decoration: none;"> <h3>扩展</h3> </a> <p>如果你想添加自己的工具库,在 <code>src</code> 目录创建文件,对应 <code>test</code> 目录添加测试用例,执行 <code>npm run test</code></p> <a href="#utils" id="utils" style="color: inherit; text-decoration: none;"> <h3>utils</h3> </a> <p>vue 和 常用插件 axios 封装工具类</p> <a href="#迭代记录" id="迭代记录" style="color: inherit; text-decoration: none;"> <h3>迭代记录</h3> </a> <a href="#013" id="013" style="color: inherit; text-decoration: none;"> <h4>0.1.3</h4> </a> <pre><code><span style="color: #001080">增加</span><span style="color: #000000"> </span> <span style="color: #001080">getHttpBase64</span><span style="color: #000000"> </span><span style="color: #001080">获取网络图片转成base64</span> <span style="color: #001080">Regs</span><span style="color: #000000"> </span><span style="color: #001080">正则校验对象</span><span style="color: #000000"> </span><span style="color: #001080">包括手机号</span><span style="color: #000000"> </span><span style="color: #001080">邮箱等常用正则规则</span> <span style="color: #001080">getUUID</span><span style="color: #000000"> </span><span style="color: #001080">随机字符串</span><span style="color: #000000"> </span><span style="color: #001080">前端设置唯一id</span> <span style="color: #001080">appendJs</span><span style="color: #000000"> </span><span style="color: #001080">插入js</span><span style="color: #000000"> </span><span style="color: #001080">支持回调</span> <span style="color: #001080">clipboardObj</span><span style="color: #000000"> </span><span style="color: #001080">复制和获取黏贴内容</span> <span style="color: #001080">cursortPosition</span><span style="color: #000000"> </span><span style="color: #001080">获取焦点光标控制</span> <span style="color: #001080">sleepSync</span><span style="color: #000000"> </span><span style="color: #001080">睡眠</span> <span style="color: #001080">sleepAction</span><span style="color: #000000"> </span><span style="color: #001080">延时执行</span> <span style="color: #001080">objTools</span><span style="color: #000000"> </span><span style="color: #001080">对象操作</span><span style="color: #000000"> </span><span style="color: #001080">判断key</span><span style="color: #000000"> </span><span style="color: #001080">对象相等</span> <span style="color: #001080">getGlobal</span><span style="color: #000000">, </span><span style="color: #001080">setGlobal</span><span style="color: #000000">, </span><span style="color: #001080">globalLib</span><span style="color: #000000">, </span><span style="color: #001080">removeGlobalItem</span><span style="color: #000000"> </span><span style="color: #001080">window对象操作等</span> <span style="color: #001080">arrayTools</span><span style="color: #000000"> </span><span style="color: #001080">数组相关操作</span><span style="color: #000000"> </span><span style="color: #001080">arrayToObject</span><span style="color: #000000"> </span><span style="color: #001080">数组转对象</span><span style="color: #000000"> </span><span style="color: #001080">arrayMoveMutate</span><span style="color: #000000"> </span><span style="color: #001080">数组移动位置原数组</span><span style="color: #000000"> </span><span style="color: #001080">arrayMove</span><span style="color: #000000"> </span><span style="color: #001080">数组移动位置返回新数组</span> <span style="color: #001080">judgeTools</span><span style="color: #000000"> </span><span style="color: #001080">判断对象数组等类型方法</span> <span style="color: #001080">byteTools</span><span style="color: #000000"> </span><span style="color: #001080">b2size</span><span style="color: #000000"> </span><span style="color: #001080">自动转换合适的单位</span><span style="color: #000000"> </span><span style="color: #001080">bytes</span><span style="color: #000000"> </span><span style="color: #001080">自定义设置转换的单位</span> <span style="color: #001080">jsonTools</span><span style="color: #000000"> </span><span style="color: #001080">decode_url_param</span><span style="color: #000000">, </span><span style="color: #001080">json_replace</span><span style="color: #000000">, </span><span style="color: #001080">json_encode</span><span style="color: #000000">, </span><span style="color: #001080">json_decode</span><span style="color: #000000"> </span><span style="color: #001080">对象字符串转换等</span> <span style="color: #001080">store</span><span style="color: #000000"> </span><span style="color: #001080">cookie</span><span style="color: #000000"> </span><span style="color: #001080">storage</span> <span style="color: #000000">---</span> <span style="color: #001080">删除</span> <span style="color: #001080">isMobile</span> <span style="color: #001080">b2size</span> </code></pre> <a href="#014" id="014" style="color: inherit; text-decoration: none;"> <h4>0.1.4</h4> </a> <ul> <li>增加 </li> </ul> <ol> <li>judgeTools.isJSONStringify <blockquote> <p>判断字符串是否可以转换对象</p> </blockquote> </li> <li>createWebsocket <blockquote> <p>创建 websocket</p> </blockquote> </li> <li>arrayTools.arrVals<blockquote> <p>根据指定的键或索引抽取数组项的值</p> </blockquote> </li> <li>arrayTools.arrFibonacci<blockquote> <p>按条件产生数组 arr(5,2,2) =&gt; [2,4,6,8,10]</p> </blockquote> </li> <li>objTools.alias <blockquote> <p>给对象增加别名</p> </blockquote> </li> <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<blockquote> <p>判断对象是否相等</p> </blockquote> </li> </ol> </li> <li>strTransfer<ol> <li>strTransfer.trim<blockquote> <p>方法是去掉字符串的开头和结尾的空白符</p> </blockquote> </li> <li>strTransfer.titleize<blockquote> <p> 将每个单词的首字母转换为大写</p> </blockquote> </li> <li>strTransfer.camelize<blockquote> <p>驼峰化</p> </blockquote> </li> <li>strTransfer.dasherize<blockquote> <p>中划线化</p> </blockquote> </li> <li>strTransfer.escapeHTML<blockquote> <p>将HTML特殊字符转换成等值的实体</p> </blockquote> </li> <li>strTransfer.unescapeHTML<blockquote> <p>实体字符转换为等值的HTML</p> </blockquote> </li> </ol> </li> </ol> <a href="#015" id="015" style="color: inherit; text-decoration: none;"> <h4>0.1.5</h4> </a> <ul> <li>增加 </li> </ul> <ol> <li>objTools <ol> <li>objTools.extend <blockquote> <p>源对象(source)的所有可枚举且目标对象(target)不存在的属性, 复制到目标对象</p> </blockquote> </li> <li>objTools.toMap <blockquote> <p>将数组或类数组转换为键值对 eg: [&#39;a&#39;,&#39;b&#39;] =&gt; {a:0,b:1}</p> </blockquote> </li> <li>objTools.toObjectMap <blockquote> <p>将对象数组转换为键值对 eg: [{name:&#39;a&#39;,value:1},{name:&#39;b&#39;,value:2}] =&gt; {a:1,b:2}</p> </blockquote> </li> <li>objTools.getChangedData <blockquote> <p>将目标对象中和源对象值不同的数据作为键值对返回</p> </blockquote> </li> </ol> </li> </ol> <a href="#016" id="016" style="color: inherit; text-decoration: none;"> <h4>0.1.6</h4> </a> <ul> <li>增加 </li> </ul> <ol> <li>objTools <ol> <li>objTools.objectConversionToList <blockquote> <p>目标和对象组合转换成数组 target{name:&#39;1&#39;,age:&#39;58&#39;} &amp;&amp; formattedObject{name:&#39;你好&#39;,age:&#39;年龄&#39;} =&gt; [{label:&#39;你好&#39;:,value:&#39;1&#39;},{label:&#39;年龄&#39;:,value:&#39;58&#39;}]</p> </blockquote> </li> <li>objTools.objectToArray <blockquote> <p>判断对象转换数组</p> </blockquote> </li> <li>objTools.sortMapByKey <blockquote> <p>根据对象的key排序 默认顺序</p> </blockquote> </li> </ol> </li> <li>judgeTools<ol> <li>judgeTools.isObjEmpty <blockquote> <p>判断对象 或者 数组是否是空</p> </blockquote> </li> <li>judgeTools.compareSize <blockquote> <p>判断大小 用来sort等 返回 -1 0 1</p> </blockquote> </li> </ol> </li> <li>strTransfer <ol> <li>strTransfer.toSimplifiedChinese <blockquote> <p>阿拉伯数字转换为简写汉字</p> </blockquote> </li> </ol> </li> </ol> </div> </div> <div class="col-4 col-menu menu-sticky-wrap menu-highlight"> <nav class="tsd-navigation primary"> <ul> <li class=" "> <a href="modules.html">Exports</a> </li> <li class=" tsd-kind-module"> <a href="modules/arithmetic_queue.html">arithmetic/queue</a> </li> <li class=" tsd-kind-module"> <a href="modules/color_iscolor.html">color/is<wbr>Color</a> </li> <li class=" tsd-kind-module"> <a href="modules/obj_window.html">obj/window</a> </li> <li class=" tsd-kind-module"> <a href="modules/plugins.html">plugins</a> </li> <li class=" tsd-kind-module"> <a href="modules/reg.html">reg</a> </li> <li class=" tsd-kind-module"> <a href="modules/reg_isemoji.html">reg/is<wbr>Emoji</a> </li> <li class=" tsd-kind-module"> <a href="modules/reg_isidcard.html">reg/isIDCard</a> </li> <li class=" tsd-kind-module"> <a href="modules/reg_isspecialchar.html">reg/is<wbr>Special<wbr>Char</a> </li> <li class=" tsd-kind-module"> <a href="modules/transfer_bytes.html">transfer/bytes</a> </li> <li class=" tsd-kind-module"> <a href="modules/url.html">url</a> </li> </ul> </nav> <nav class="tsd-navigation secondary menu-sticky"> <ul class="before-current"> </ul> </nav> </div> </div> </div> <footer> <div class="container"> <h2>Legend</h2> <div class="tsd-legend-group"> <ul class="tsd-legend"> <li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li> <li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li> </ul> <ul class="tsd-legend"> <li class="tsd-kind-class"><span class="tsd-kind-icon">Class</span></li> </ul> </div> </div> </footer> <div class="overlay"></div> <script src="assets/js/main.js"></script> </body> </html>