{"pageContext":{"index":16,"total":364,"name":"2019-08-25","items":[{"node":{"frontmatter":{"title":"NativeScript 6.0 发布，完全支持 Vue.js","publish":true,"cover":"https://oscimg.oschina.net/oscnet/fa1e822efc69ced72b23a3047ecf0c55e79.jpg","showCover":true,"date":"2019-08-22","category":"mobile","url":"https://www.oschina.net/news/108362/nativescript-6-0-released","author":"afterer@OSCHINA","translator":"","tags":["mobile"],"priority":1},"html":"<blockquote>\n<p>React Native只支持React，那么Angular和Vue就由NativeSript来实现。</p>\n</blockquote>"}},{"node":{"frontmatter":{"title":"7中方式增加你的Angular程序的accessibility","publish":true,"cover":"https://d585tldpucybw.cloudfront.net/sfimages/default-source/default-album/tb_870x2201a4c36fc3c124e66a1fe2a08c9caa5f0.png?sfvrsn=3ed7c96b_1","showCover":true,"date":"2019-08-22","category":"frontend","url":"https://www.telerik.com/blogs/7-ways-to-make-your-angular-app-more-accessible","author":"Chris Ward","translator":"","tags":["accessibility"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"Ionic react候选版发布","publish":true,"cover":"https://ionicframework.com/blog/wp-content/uploads/2019/08/start_ionic_react_app_cli.png","showCover":true,"date":"2019-08-22","category":"mobile","url":"https://ionicframework.com/blog/announcing-ionic-react-release-candidate/","author":"Ely Lucas (Ionic)","translator":"","tags":["ionic"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"Node v12.9.0发布，Promise.allSettled可用","publish":true,"cover":"https://github.com/nodegui/examples/raw/master/nodegui/calculator/calculator_linux.png","showCover":true,"date":"2019-08-22","category":"nodejs","url":"https://nodejs.org/en/blog/release/v12.9.0/","author":"Atul R 编辑 Ka","translator":"","tags":["desktop"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"admin-bro react实现的管理后台模板","publish":true,"cover":"https://github.com/SoftwareBrothers/admin-bro/raw/master/docs/anim.gif","showCover":true,"date":"2019-08-22","category":"frontend","url":"https://github.com/SoftwareBrothers/admin-bro","author":"SoftwareBrothers 编辑 Ka","translator":"","tags":["react"],"priority":1},"html":"<p><a href=\"https://admin-bro-example-app.herokuapp.com/admin\">在线体验</a><br>\n用户名: test@example.com\n密码: password</p>"}},{"node":{"frontmatter":{"title":"auth0配合mongodb实现自定义数据库auth0服务","publish":true,"cover":"https://cdn.auth0.com/blog/mongodb-atlas/testing-the-login-script.png","showCover":true,"date":"2019-08-22","category":"database","url":"https://auth0.com/blog/auth0-tutorials-using-mongodb-atlas-as-a-custom-database/","author":"Bruno Krebs","translator":"","tags":["mongodb"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"NodeGUI-基于Qt的桌面端开发框架","publish":true,"cover":"https://github.com/nodegui/examples/raw/master/nodegui/calculator/calculator_linux.png","showCover":true,"date":"2019-08-22","category":"nodejs","url":"https://github.com/nodegui/nodegui","author":"Atul R 编辑 Ka","translator":"","tags":["desktop"],"priority":1},"html":"<p>与Electron，NW不同的是，构建的是Native程序，使用css+javascript的方式组织程序。注重性能优化。</p>"}},{"node":{"frontmatter":{"title":"date-fns更简单易用的时间操作库","publish":true,"cover":"","showCover":true,"date":"2019-08-22","category":"nodejs","url":"https://github.com/date-fns/date-fns","author":"date-fns 编辑 Ka","translator":"","tags":["time"],"priority":1},"html":"<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">import</span> <span class=\"token punctuation\">{</span> format<span class=\"token punctuation\">,</span> formatDistance<span class=\"token punctuation\">,</span> formatRelative<span class=\"token punctuation\">,</span> subDays <span class=\"token punctuation\">}</span> <span class=\"token keyword\">from</span> <span class=\"token string\">'date-fns'</span>\n\n<span class=\"token function\">format</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">new</span> <span class=\"token class-name\">Date</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"'今天是' iiii\"</span><span class=\"token punctuation\">)</span>\n<span class=\"token comment\">//=> \"今天是 Friday\"</span>\n\n<span class=\"token function\">formatDistance</span><span class=\"token punctuation\">(</span><span class=\"token function\">subDays</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">new</span> <span class=\"token class-name\">Date</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Date</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n<span class=\"token comment\">//=> \"3 days ago\"</span>\n\n<span class=\"token function\">formatRelative</span><span class=\"token punctuation\">(</span><span class=\"token function\">subDays</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">new</span> <span class=\"token class-name\">Date</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Date</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n<span class=\"token comment\">//=> \"last Friday at 7:26 p.m.\"</span></code></pre></div>"}},{"node":{"frontmatter":{"title":"filepond-强大易用的上传组件","publish":true,"cover":"https://github.com/pqina/filepond-github-assets/raw/master/filepond-animation-01.gif?raw=true","showCover":true,"date":"2019-08-22","category":"frontend","url":"https://github.com/pqina/filepond","author":"Rik Schennink 编辑 Ka","translator":"","tags":["upload"],"priority":1},"html":"<ul>\n<li>支持拖拽</li>\n<li>支持图片编辑(配合<a href=\"https://pqina.nl/doka/\">doka</a>)\n<img src=\"https://github.com/pqina/filepond-github-assets/raw/master/doka.gif?raw=true\"></li>\n<li>支持移动端</li>\n<li>Accessible</li>\n<li>异步上传</li>\n<li>支持插件</li>\n</ul>"}},{"node":{"frontmatter":{"title":"es2019新函数","publish":true,"cover":"","showCover":true,"date":"2019-08-22","category":"javascript2","url":"https://css-tricks.com/all-the-new-es2019-tips-and-tricks/","author":"Laurie Barth 编辑 Ka","translator":"","tags":["es2019"],"priority":1},"html":"<h2 id=\"objectfromentries\"><a href=\"#objectfromentries\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Object.fromEntries</h2>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">let</span> students <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n  amelia<span class=\"token punctuation\">:</span> <span class=\"token number\">20</span><span class=\"token punctuation\">,</span>\n  beatrice<span class=\"token punctuation\">:</span> <span class=\"token number\">22</span><span class=\"token punctuation\">,</span>\n  cece<span class=\"token punctuation\">:</span> <span class=\"token number\">20</span><span class=\"token punctuation\">,</span>\n  deirdre<span class=\"token punctuation\">:</span> <span class=\"token number\">19</span><span class=\"token punctuation\">,</span>\n  eloise<span class=\"token punctuation\">:</span> <span class=\"token number\">21</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token comment\">// convert to array in order to make use of .filter() function</span>\n<span class=\"token comment\">// Object.entries 实现于 ES2017</span>\n<span class=\"token keyword\">let</span> overTwentyOne <span class=\"token operator\">=</span> Object<span class=\"token punctuation\">.</span><span class=\"token function\">entries</span><span class=\"token punctuation\">(</span>students<span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">filter</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">[</span>name<span class=\"token punctuation\">,</span> age<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">return</span> age <span class=\"token operator\">>=</span> <span class=\"token number\">21</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// [ [ 'beatrice', 22 ], [ 'eloise', 21 ] ]</span>\n\n<span class=\"token comment\">// 相当于Object.entries的反向操作</span>\n<span class=\"token keyword\">let</span> DrinkingAgeStudents <span class=\"token operator\">=</span> Object<span class=\"token punctuation\">.</span><span class=\"token function\">fromEntries</span><span class=\"token punctuation\">(</span>overTwentyOne<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// { beatrice: 22, eloise: 21 }</span></code></pre></div>\n<h2 id=\"arrayprototypeflat\"><a href=\"#arrayprototypeflat\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Array.prototype.flat</h2>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">let</span> courseStudents <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span>\n  <span class=\"token punctuation\">[</span><span class=\"token string\">'Janet'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'Martha'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'Bob'</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span><span class=\"token string\">'Phil'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'Candace'</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span>\n  <span class=\"token punctuation\">[</span><span class=\"token string\">'Wilson'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'Taylor'</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span>\n  <span class=\"token punctuation\">[</span><span class=\"token string\">'Edith'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'Jacob'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'Peter'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'Betty'</span><span class=\"token punctuation\">]</span>\n<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">let</span> flattenOneLevel <span class=\"token operator\">=</span> courseStudents<span class=\"token punctuation\">.</span><span class=\"token function\">flat</span><span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>flattenOneLevel<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// [</span>\n<span class=\"token comment\">//   'Janet',</span>\n<span class=\"token comment\">//   'Martha',</span>\n<span class=\"token comment\">//   'Bob',</span>\n<span class=\"token comment\">//   [ 'Phil', 'Candace' ],</span>\n<span class=\"token comment\">//   'Wilson',</span>\n<span class=\"token comment\">//   'Taylor',</span>\n<span class=\"token comment\">//   'Edith',</span>\n<span class=\"token comment\">//   'Jacob',</span>\n<span class=\"token comment\">//   'Peter',</span>\n<span class=\"token comment\">//   'Betty'</span>\n<span class=\"token comment\">// ]</span>\n\n<span class=\"token keyword\">let</span> flattenTwoLevels <span class=\"token operator\">=</span> courseStudents<span class=\"token punctuation\">.</span><span class=\"token function\">flat</span><span class=\"token punctuation\">(</span><span class=\"token number\">2</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>flattenTwoLevels<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// [</span>\n<span class=\"token comment\">//   'Janet',   'Martha',</span>\n<span class=\"token comment\">//   'Bob',     'Phil',</span>\n<span class=\"token comment\">//   'Candace', 'Wilson',</span>\n<span class=\"token comment\">//   'Taylor',  'Edith',</span>\n<span class=\"token comment\">//   'Jacob',   'Peter',</span>\n<span class=\"token comment\">//   'Betty'</span>\n<span class=\"token comment\">// ]</span></code></pre></div>\n<h2 id=\"arrayprototypeflatmap\"><a href=\"#arrayprototypeflatmap\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Array.prototype.flatMap</h2>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">let</span> grades <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">78</span><span class=\"token punctuation\">,</span> <span class=\"token number\">62</span><span class=\"token punctuation\">,</span> <span class=\"token number\">80</span><span class=\"token punctuation\">,</span> <span class=\"token number\">64</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">let</span> flatMapped <span class=\"token operator\">=</span> grades<span class=\"token punctuation\">.</span><span class=\"token function\">flatMap</span><span class=\"token punctuation\">(</span>grade <span class=\"token operator\">=></span> <span class=\"token punctuation\">[</span>grade<span class=\"token punctuation\">,</span> grade <span class=\"token operator\">+</span> <span class=\"token number\">7</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// [</span>\n<span class=\"token comment\">//  78, 85, 62, 69,</span>\n<span class=\"token comment\">//  80, 87, 64, 71</span>\n<span class=\"token comment\">// ]</span></code></pre></div>\n<h2 id=\"stringtrimstart-和-stringtrimend\"><a href=\"#stringtrimstart-%E5%92%8C-stringtrimend\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>String.trimStart 和 String.trimEnd</h2>\n<p>等同于 String.trimRight 和 String.trimLeft</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">let</span> message <span class=\"token operator\">=</span> <span class=\"token string\">'   Welcome to CS 101    '</span><span class=\"token punctuation\">;</span>\nmessage<span class=\"token punctuation\">.</span><span class=\"token function\">trimEnd</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// '   Welcome to CS 101'</span>\nmessage<span class=\"token punctuation\">.</span><span class=\"token function\">trimStart</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// 'Welcome to CS 101   '</span>\nmessage<span class=\"token punctuation\">.</span><span class=\"token function\">trimEnd</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">trimStart</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// 'Welcome to CS 101'</span></code></pre></div>\n<h2 id=\"catch-可不绑定异常类型\"><a href=\"#catch-%E5%8F%AF%E4%B8%8D%E7%BB%91%E5%AE%9A%E5%BC%82%E5%B8%B8%E7%B1%BB%E5%9E%8B\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>catch 可不绑定异常类型</h2>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">try</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">let</span> parsed <span class=\"token operator\">=</span> <span class=\"token constant\">JSON</span><span class=\"token punctuation\">.</span><span class=\"token function\">parse</span><span class=\"token punctuation\">(</span>obj<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span> <span class=\"token keyword\">catch</span> <span class=\"token punctuation\">{</span>\n  console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>obj<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<h2 id=\"functiontostring保留原空格格式\"><a href=\"#functiontostring%E4%BF%9D%E7%95%99%E5%8E%9F%E7%A9%BA%E6%A0%BC%E6%A0%BC%E5%BC%8F\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Function.toString()保留原空格格式</h2>"}},{"node":{"frontmatter":{"title":"geek 的方式拼出 banana","publish":true,"cover":"","showCover":true,"date":"2019-08-22","category":"javascript","url":"https://stackoverflow.com/questions/57456188/why-is-the-result-of-ba-a-a-tolowercase-banana","author":"Stack Overflow 编辑 Ka","translator":"","tags":["time"],"priority":1},"html":"<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\">console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token operator\">+</span><span class=\"token string\">'a'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">//输出'NaN'</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token string\">'ba'</span> <span class=\"token operator\">+</span> <span class=\"token operator\">+</span><span class=\"token string\">'a'</span> <span class=\"token operator\">+</span> <span class=\"token string\">'a'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 输出'baNaNa'</span>\ndocument<span class=\"token punctuation\">.</span><span class=\"token function\">write</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token string\">'b'</span> <span class=\"token operator\">+</span> <span class=\"token string\">'a'</span> <span class=\"token operator\">+</span> <span class=\"token operator\">+</span><span class=\"token string\">'a'</span> <span class=\"token operator\">+</span> <span class=\"token string\">'a'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">toLowerCase</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>"}},{"node":{"frontmatter":{"title":"javascript 检测文件类型","publish":true,"cover":"","showCover":true,"date":"2019-08-22","category":"frontend","url":"https://github.com/pqina/filepond","author":"Sindre Sorhus 编辑 Ka","translator":"","tags":["file"],"priority":1},"html":"<p>通过 Buffer/Uint8Array/ArrayBuffer 检测文件类型\n支持远程检测。</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> xhr <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">XMLHttpRequest</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nxhr<span class=\"token punctuation\">.</span><span class=\"token function\">open</span><span class=\"token punctuation\">(</span><span class=\"token string\">'GET'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'unicorn.png'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nxhr<span class=\"token punctuation\">.</span>responseType <span class=\"token operator\">=</span> <span class=\"token string\">'arraybuffer'</span><span class=\"token punctuation\">;</span>\n\nxhr<span class=\"token punctuation\">.</span><span class=\"token function-variable function\">onload</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <span class=\"token function\">fileType</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">new</span> <span class=\"token class-name\">Uint8Array</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>response<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token comment\">//=> {ext: 'png', mime: 'image/png'}</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n\nxhr<span class=\"token punctuation\">.</span><span class=\"token function\">send</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>"}},{"node":{"frontmatter":{"title":"neon-绑定RUST用于实现native模块","publish":true,"cover":"https://github.com/neon-bindings/neon/raw/master/neon.png","showCover":true,"date":"2019-08-22","category":"nodejs","url":"https://github.com/neon-bindings/neon","author":"Neon Bindings","translator":"","tags":["rust"],"priority":1},"html":"<ul>\n<li>支持Linux\tmacOS\tWindows</li>\n<li>支持Nodejs >= 6</li>\n<li>支持RUST >= 1.18</li>\n</ul>"}},{"node":{"frontmatter":{"title":"npm 6.11.0发布，默认再不会创建根用户拥有的文件（除非根用户运行创建）","publish":true,"cover":"","showCover":true,"date":"2019-08-22","category":"nodejs","url":"https://blog.npmjs.org/post/187146797665/release-6110","author":"npm 编辑 Ka","translator":"","tags":["npm"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"quicklink 由 Chrome 开源来的加载加速工具","publish":true,"cover":"https://camo.githubusercontent.com/d9e978c30d6e62fa13b4aea5af2560eebb67e20f/68747470733a2f2f692e696d6775722e636f6d2f4e56525a4c48762e706e67","showCover":true,"date":"2019-08-22","category":"frontend","url":"https://github.com/GoogleChromeLabs/quicklink","author":"Google Chrome Labs 编辑 Ka","translator":"","tags":["chrome"],"priority":1},"html":"<ul>\n<li>仅当浏览器空闲时执行</li>\n<li>通过检测视图里的链接，来进行预加载</li>\n<li>使用<link rel=prefetch> 或 XHR 来预加载</li>\n</ul>\n<p>使用示例：</p>\n<div class=\"gatsby-highlight\" data-language=\"html\"><pre class=\"language-html\"><code class=\"language-html\"><span class=\"token comment\">&lt;!-- Include quicklink from dist --></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>script</span> <span class=\"token attr-name\">src</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>dist/quicklink.umd.js<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span><span class=\"token script language-javascript\"></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>script</span><span class=\"token punctuation\">></span></span>\n<span class=\"token comment\">&lt;!-- Initialize (you can do this whenever you want) --></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script language-javascript\">\n  <span class=\"token function\">quicklink</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>script</span><span class=\"token punctuation\">></span></span></code></pre></div>"}},{"node":{"frontmatter":{"title":"react-sortable-hoc-高阶函数式可排序列表，支持拖拽","publish":true,"cover":"https://oscimg.oschina.net/oscnet/fa1e822efc69ced72b23a3047ecf0c55e79.jpg","showCover":true,"date":"2019-08-22","category":"frontend","url":"https://github.com/clauderic/react-sortable-hoc","author":"Maks Akymenko","translator":"","tags":["react"],"priority":1},"html":"<p><a href=\"http://clauderic.github.io/react-sortable-hoc/#/basic-configuration/basic-usage?_k=dn0bmo\">在线demo</a></p>"}},{"node":{"frontmatter":{"title":"react-spinners加载动画特效,支持修改颜色","publish":true,"cover":"https://camo.githubusercontent.com/92f836c3865f034ba3d5df879c43cf4d0facc3ff/68747470733a2f2f63646e2e7261776769742e636f6d2f676f6b63616e2f72656163742d7368696d6d65722f6d61737465722f6d656469612f64656d6f2e676966","showCover":true,"date":"2019-08-22","category":"frontend","url":"https://github.com/davidhu2000/react-spinners","author":"David Hu 编辑 Ka","translator":"","tags":["react"],"priority":1},"html":"<p><a href=\"https://www.react-spinners.com/\">在线demo</a></p>"}},{"node":{"frontmatter":{"title":"react-shimmer 加载图片闪光特效","publish":true,"cover":"https://camo.githubusercontent.com/92f836c3865f034ba3d5df879c43cf4d0facc3ff/68747470733a2f2f63646e2e7261776769742e636f6d2f676f6b63616e2f72656163742d7368696d6d65722f6d61737465722f6d656469612f64656d6f2e676966","showCover":true,"date":"2019-08-22","category":"frontend","url":"https://github.com/gokcan/react-shimmer","author":"Gokcan Degirmenci 编辑 Ka","translator":"","tags":["react"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"top 10 mongodb安全实践","publish":true,"cover":"https://i2.wp.com/blog.sqreen.com/wp-content/uploads/2019/07/Blog_Mongodb_security_best_pratices.png?resize=1640%2C624&ssl=1","showCover":true,"date":"2019-08-22","category":"database","url":"https://blog.sqreen.com/top-10-security-best-practices-for-mongodb/","author":"Casey Dunham","translator":"","tags":["mongodb"],"priority":1},"html":"<p><a href=\"https://docs.mongodb.com/manual/administration/security-checklist/\">官方安全检查清单</a></p>\n<ul>\n<li>开启访问控制(设置密码访问)</li>\n<li>配置基于角色的访问控制</li>\n<li>使用 TSL 连接</li>\n<li>开启其它加密项（企业版）</li>\n<li>限制网络暴露（仅运行于 localhost）</li>\n<li>配置系统审计</li>\n<li>仅使用官方 mongodb 包</li>\n<li>保持 mongodb 更新</li>\n<li>关闭 javascript 执行</li>\n</ul>"}},{"node":{"frontmatter":{"title":"requestAnimationFrame和react hook配合使用","publish":true,"cover":"","showCover":true,"date":"2019-08-22","category":"frontend","url":"https://css-tricks.com/using-requestanimationframe-with-react-hooks/","author":"Hunor Márton Borbély","translator":"","tags":["react"],"priority":1},"html":"<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">function</span> <span class=\"token function\">App</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">const</span> <span class=\"token punctuation\">[</span>state<span class=\"token punctuation\">,</span> setState<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> React<span class=\"token punctuation\">.</span><span class=\"token function\">useState</span><span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">)</span>\n\n  <span class=\"token keyword\">const</span> requestRef <span class=\"token operator\">=</span> React<span class=\"token punctuation\">.</span><span class=\"token function\">useRef</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n  \n  <span class=\"token keyword\">const</span> <span class=\"token function-variable function\">animate</span> <span class=\"token operator\">=</span> time <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n    requestRef<span class=\"token punctuation\">.</span>current <span class=\"token operator\">=</span> <span class=\"token function\">requestAnimationFrame</span><span class=\"token punctuation\">(</span>animate<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n    \n  React<span class=\"token punctuation\">.</span><span class=\"token function\">useEffect</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n    requestRef<span class=\"token punctuation\">.</span>current <span class=\"token operator\">=</span> <span class=\"token function\">requestAnimationFrame</span><span class=\"token punctuation\">(</span>animate<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token function\">cancelAnimationFrame</span><span class=\"token punctuation\">(</span>requestRef<span class=\"token punctuation\">.</span>current<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 注意这里。保证只调一次</span>\n  \n  <span class=\"token keyword\">return</span> <span class=\"token operator\">&lt;</span>div<span class=\"token operator\">></span><span class=\"token punctuation\">{</span>state<span class=\"token punctuation\">}</span><span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>div<span class=\"token operator\">></span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code></pre></div>"}},{"node":{"frontmatter":{"title":"v8n-链式验证库","publish":true,"cover":"https://github.com/imbrn/v8n/raw/master/docs/assets/logo.png","showCover":true,"date":"2019-08-22","category":"javascript","url":"https://github.com/imbrn/v8n","author":"Bruno C. Couto 编辑 Ka","translator":"","tags":["validation"],"priority":1},"html":"<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token function\">v8n</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n  <span class=\"token punctuation\">.</span><span class=\"token function\">string</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n  <span class=\"token punctuation\">.</span><span class=\"token function\">minLength</span><span class=\"token punctuation\">(</span><span class=\"token number\">5</span><span class=\"token punctuation\">)</span>\n  <span class=\"token punctuation\">.</span><span class=\"token function\">first</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"H\"</span><span class=\"token punctuation\">)</span>\n  <span class=\"token punctuation\">.</span><span class=\"token function\">last</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"o\"</span><span class=\"token punctuation\">)</span>\n  <span class=\"token punctuation\">.</span><span class=\"token function\">test</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Hello\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// true</span></code></pre></div>"}},{"node":{"frontmatter":{"title":"产品级别上使用 javascript 原生模块特性","publish":true,"cover":"","showCover":true,"date":"2019-08-22","category":"javascript","url":"https://philipwalton.com/articles/using-native-javascript-modules-in-production-today/","author":"Philip Walton 编辑 Ka","translator":"","tags":["module"],"priority":1},"html":"<ul>\n<li>使用打包工具(rollup)生成 ES2015 module 格式</li>\n<li>积极的分割代码（配合<a href=\"https://rollupjs.org/guide/en/#code-splitting\">动态加载</a>）</li>\n<li>预加载模块（使用 <a href=\"https://developers.google.com/web/updates/2017/12/modulepreload\">modulepreload</a>）</li>\n<li>使用动态加载 <a href=\"https://github.com/GoogleChromeLabs/dynamic-import-polyfill\">polyfill</a>(如果不支持的话)</li>\n<li>如果不支持 module，使用<script nomodule></li>\n</ul>"}},{"node":{"frontmatter":{"title":"变量字体和splitting实现文字特效","publish":true,"cover":"https://camo.githubusercontent.com/c0ef3426d02dc2f2c126504e3328ee55094f66d4/68747470733a2f2f73706c697474696e672e6a732e6f72672f73706c697474696e672e676966","showCover":true,"date":"2019-08-22","category":"frontend","url":"https://css-irl.info/variable-font-animation-with-css-and-splitting-js/","author":"Michelle Barker 编辑 Ka","translator":"","tags":["css"],"priority":1},"html":"<p><a href=\"https://github.com/shshaw/splitting\">splitting</a> 将文本拆分以便实现动画特效。\n配合\n<a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide#Variable_Fonts_what_they_are_and_how_they_differ\">font-variation-settings</a>变量字体可实现炫酷的问题特效。</p>\n<p><a href=\"https://v-fonts.com/\">V-Fonts</a>包含了多种可变字体。</p>"}},{"node":{"frontmatter":{"title":"使用pynode整合nodejs和python预测房屋价格","publish":true,"cover":"https://thecodinginterface-images.s3.amazonaws.com/blogposts/PyNode/PyNode.jpg","showCover":true,"date":"2019-08-22","category":"nodejs","url":"https://thecodinginterface.com/blog/bridging-nodejs-and-python-with-pynode/","author":"Adam McQuistan","translator":"","tags":["python"],"priority":1},"html":"<p><a href=\"https://github.com/fridgerator/PyNode\">PyNode</a>可以在nodejs里运行python环境.</p>"}},{"node":{"frontmatter":{"title":"商业电视游戏源码集合","publish":true,"cover":"","showCover":true,"date":"2019-08-22","category":"game","url":"https://github.com/videogamepreservation","author":"Simon Morgan","translator":"","tags":["game"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"游戏-飞翔的鸡蛋(Aero Egg)-ios非中国区可下载","publish":true,"cover":"https://blog.kazge.com/assets/volitantegg-show.gif","showCover":true,"date":"2019-06-12","category":"game","url":"https://blog.kazge.com/show/volitantegg/%E9%A3%9E%E7%BF%94%E7%9A%84%E9%B8%A1%E8%9B%8B.apk","author":"广告","translator":"","tags":["ads"],"priority":1},"html":"<p><a href=\"https://itunes.apple.com/us/app/volitant-egg-ads-version/id1247264387?mt=8\">APP Store(非国内账户可下载)</a>\n<a href=\"https://blog.kazge.com/show/volitantegg/%E9%A3%9E%E7%BF%94%E7%9A%84%E9%B8%A1%E8%9B%8B.apk\">安卓 - 中文</a></p>"}},{"node":{"frontmatter":{"title":"微软出品-VSCODE 全栈工程向导插件","publish":true,"cover":"https://46c4ts1tskv22sdav81j9c69-wpengine.netdna-ssl.com/wp-content/uploads/prod/sites/3/2019/08/db0937ecbe923a4b23930954b2d28170.png","showCover":true,"date":"2019-08-22","category":"nodejs","url":"https://blogs.windows.com/windowsdeveloper/2019/08/21/growing-web-template-studio/","author":"Lea Akkari (Microsoft) 编辑 Ka","translator":"","tags":["vscode"],"priority":1},"html":"<p>前端框架支持 React.js , Vue.js, Angular\n后端支持 node.js 和 python 的 Flask。</p>"}},{"node":{"frontmatter":{"title":"基于Ocelot的api-gateway示例","publish":true,"cover":"https://github.com/allanchua101/api-gateway-vue-express-pg/raw/master/Stack%20Diagram.png","showCover":true,"date":"2019-08-22","category":"microservice","url":"https://github.com/allanchua101/api-gateway-vue-express-pg","author":"Allan Chua 编辑 Ka","translator":"","tags":["apigateway"],"priority":1},"html":"<ul>\n<li><a href=\"https://github.com/ThreeMammals/Ocelot\">Ocelot</a>是基于.net core的api 网关</li>\n<li><a href=\"https://engineering.opsgenie.com/comparing-api-gateway-performances-nginx-vs-zuul-vs-spring-cloud-gateway-vs-linkerd-b2cc59c65369\">这篇文章测试</a>，用nginx做api网关性能最优</li>\n</ul>"}},{"node":{"frontmatter":{"title":"微软基于chrome的Edge浏览器beta发布","publish":true,"cover":"https://46c4ts1tskv22sdav81j9c69-wpengine.netdna-ssl.com/wp-content/uploads/prod/sites/2/2019/08/4cac7883632a1fb69454aba7b0b0c3ac-1024x576.png","showCover":true,"date":"2019-08-22","category":"frontend","url":"https://www.microsoftedgeinsider.com/en-us/","author":"Joe Belfiore (Microsoft) 编辑 Ka","translator":"","tags":["react"],"priority":1},"html":"<p>支持windows和mac，开发者调试IE浏览器再也不用windows了！</p>"}},{"node":{"frontmatter":{"title":"想让你的文章出现在这里？","publish":true,"cover":"","showCover":true,"date":"2019-07-08","category":"frontend","url":"mailto:editor@zhouexin.com?subject=投稿!","author":"投稿","translator":"","tags":["editor"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"手绘风格图表","publish":true,"cover":"https://raw.githubusercontent.com/timqian/images/master/20190819131226.gif","showCover":true,"date":"2019-08-22","category":"frontend","url":"https://github.com/timqian/chart.xkcd","author":"Tim Qian 编辑 Ka","translator":"","tags":["chart"],"priority":1},"html":"<p>“sketchy”, “cartoony” or “hand-drawn” 简称 <code class=\"language-text\">xkcd</code>(手绘卡通素描风格)</p>"}}]}}