{"pageContext":{"index":23,"total":364,"name":"2019-10-12","items":[{"node":{"frontmatter":{"title":"AniX-3k大小动画特效库(js实现)","publish":true,"cover":"https://github.com/a-jie/AniX/raw/master/logo/logo.png?raw=true","showCover":true,"date":"2019-10-10","category":"前端","url":"https://github.com/a-jie/AniX","author":"AniX","translator":"","tags":["web"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"100vh高度在手机上的问题","publish":true,"cover":"https://chanind.github.io/assets/100vh_problem.png","showCover":true,"date":"2019-10-10","category":"前端","url":"https://chanind.github.io/javascript/2019/09/28/avoid-100vh-on-mobile-web.html","author":"David Chanin","translator":"","tags":["mobile"],"priority":1},"html":"<p>当地址栏出现时，100vh就超出了屏幕。</p>\n<p>解决方案：</p>\n<ul>\n<li>使用脚本window.innerHeight</li>\n<li>配合html body { height: 100% }</li>\n<li>\n<p>不支持IE11</p>\n<div class=\"gatsby-highlight\" data-language=\"css\"><pre class=\"language-css\"><code class=\"language-css\"><span class=\"token selector\">document.documentElement.style.setProperty('--vh', `$</span><span class=\"token punctuation\">{</span>window.innerHeight/100<span class=\"token punctuation\">}</span>px`<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n</li>\n</ul>\n<p>.fullheight {\nheight: calc(var(--vh, 1vh) * 100);\n}</p>\n<p>Bonus: simplifying with an SCSS function:</p>\n<p>@function vh($quantity) {\n@return calc(var(--vh, 1vh) * #{$quantity});\n}</p>\n<p>.fullheight {\nheight: vh(100);\n}</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\"></code></pre></div>"}},{"node":{"frontmatter":{"title":"Node Version Manager 成为OpenJs基金会(由JS基金会和Node基金会合并)第一个孵化项目","publish":true,"cover":"https://openjsf.org/wp-content/uploads/sites/84/2019/10/Welcomes-nvm-768x384.jpg","showCover":true,"date":"2019-10-10","category":"nodejs","url":"https://openjsf.org/blog/2019/10/03/openjs-foundation-welcomes-first-project-node-version-manager-nvm/","author":"Rachel Romoff","translator":"","tags":["web"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"Mongoose设计-字段冗余联动更新避免多表查询","publish":true,"cover":"","showCover":true,"date":"2019-10-11","category":"nodejs","url":"http://thecodebarbarian.com/mongoose-schema-design-pattern-store-what-you-query-for.html","author":"Valeri Karpov","translator":"","tags":["mongoose"],"priority":1},"html":"<p>将需要连表查询的字段作为冗余字段放在一个表里，这样尽量避免多表查询。</p>\n<p>$lookup尽量不要使用</p>\n<p>冗余字段同步数据的问题</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> authorSchema <span class=\"token operator\">=</span> <span class=\"token function\">Schema</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span> name<span class=\"token punctuation\">:</span> String <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// Add middleware to update the dereferenced `authorName`</span>\nauthorSchema<span class=\"token punctuation\">.</span><span class=\"token function\">pre</span><span class=\"token punctuation\">(</span><span class=\"token string\">'save'</span><span class=\"token punctuation\">,</span> <span class=\"token keyword\">async</span> <span class=\"token keyword\">function</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span><span class=\"token function\">isModified</span><span class=\"token punctuation\">(</span><span class=\"token string\">'name'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">await</span> Book<span class=\"token punctuation\">.</span><span class=\"token function\">updateMany</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span> authorId<span class=\"token punctuation\">:</span> <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>author <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span> authorName<span class=\"token punctuation\">:</span> <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>name <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> Author <span class=\"token operator\">=</span> mongoose<span class=\"token punctuation\">.</span><span class=\"token function\">model</span><span class=\"token punctuation\">(</span><span class=\"token string\">'Author'</span><span class=\"token punctuation\">,</span> authorSchema<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token comment\">// Won't trigger the 'save' middleware. You would need a separate `pre('updateOne')`</span>\n<span class=\"token comment\">// hook to capture this case.</span>\n<span class=\"token keyword\">await</span> Author<span class=\"token punctuation\">.</span><span class=\"token function\">updateOne</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> name<span class=\"token punctuation\">:</span> <span class=\"token string\">'test'</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<blockquote>\n<p>这个举例太简单，并没有看到有多便利。如果是这样简单的例子，先查外表，列出id，再查本表，这也很简单。况且这个联动更新不能解决数据库被非本程序修改的问题。</p>\n</blockquote>"}},{"node":{"frontmatter":{"title":"PostgreSQL 12: 支持 Generated Columns 特性","publish":true,"cover":"","showCover":true,"date":"2019-10-10","category":"database","url":"https://postgres.fun/20190722112100.html","author":"谭峰（francs）","translator":"","tags":["postgres"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"is-website-vulnerable检测网页是否使用漏洞库工具","publish":true,"cover":"https://github.com/lirantal/is-website-vulnerable/raw/master/.github/is-website-vulnerable-logo.png","showCover":true,"date":"2019-10-11","category":"nodejs","url":"https://github.com/lirantal/is-website-vulnerable","author":"Liran Tal","translator":"","tags":["security"],"priority":1},"html":"<p>使用\n<code class=\"language-text\">npx is-website-vulnerable https://example.com</code></p>"}},{"node":{"frontmatter":{"title":"js13kgames获奖者确定,第一名文件大小64B不到favicon.ico图标的一半","publish":true,"cover":"https://github.com/bencoder/js13k-2019/raw/master/screenshots/400x250-submission-screenshot.png?raw=true","showCover":true,"date":"2019-10-12","category":"javascript","url":"https://js13kgames.com/#winners","author":"Ka","translator":"","tags":["game"],"priority":2},"html":"<p><a href=\"https://js13kgames.com/games/xx142-b2exe/index.html\">第一名demo</a>，只有64b,居然比网站图标的一半还小，长见识！！</p>\n<p><a href=\"https://github.com/bencoder/js13k-2019\">源码</a></p>"}},{"node":{"frontmatter":{"title":"clip-path特效讲解","publish":true,"cover":"","showCover":true,"date":"2019-10-10","category":"前端","url":"https://css-tricks.com/clipping-clipping-and-more-clipping/","author":"Justin","translator":"","tags":["css"],"priority":1},"html":"<p>例如左上角的切割饼图菜单</p>\n<iframe height=\"265\" style=\"width: 100%;\" scrolling=\"no\" title=\"The circular menu\" src=\"https://codepen.io/ainalem/embed/YoyZpq?height=265&theme-id=0&default-tab=html,result\" frameborder=\"no\" allowtransparency=\"true\" allowfullscreen=\"true\">\n  See the Pen <a href='https://codepen.io/ainalem/pen/YoyZpq'>The circular menu</a> by Mikael Ainalem\n  (<a href='https://codepen.io/ainalem'>@ainalem</a>) on <a href='https://codepen.io'>CodePen</a>.\n</iframe>"}},{"node":{"frontmatter":{"title":"jamstack现代站点架构的创新","publish":true,"cover":"https://remotesynthesis.com/images/posts/webcms/cms_usage.png","showCover":true,"date":"2019-10-10","category":"nodejs","url":"https://remotesynthesis.com/blog/evolution-of-web-content-manaagement","author":"BRIAN RINALDI","translator":"","tags":["jam"],"priority":1},"html":"<p>JAM 代表 javascript + Apis + Markup,从静态站点工具Jekyll, Middleman, Hugo发展到Netlify平台。越来越多的CMS站点开始基于JAMStack实现。</p>"}},{"node":{"frontmatter":{"title":"moveable拖拽，变形工具","publish":true,"cover":"https://raw.githubusercontent.com/daybrush/moveable/master/demo/images/resizable.gif","showCover":true,"date":"2019-10-10","category":"前端","url":"https://github.com/daybrush/moveable","author":"Daybrush (Younkue Choi)","translator":"","tags":["web"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"react-awesome-slider 轻量级滑动块组件","publish":true,"cover":"https://github.com/rcaferati/react-awesome-slider/raw/master/demo/public/images/demo-cube.gif?raw=true","showCover":true,"date":"2019-10-10","category":"前端","url":"https://caferati.me/demo/react-awesome-slider","author":"Rafael Caferati","translator":"","tags":["animation"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"react-hook-form 基于钩子的react form组件","publish":true,"cover":"https://raw.githubusercontent.com/bluebill1049/react-hook-form/master/website/example.gif","showCover":true,"date":"2019-10-10","category":"前端","url":"https://github.com/react-hook-form/react-hook-form","author":"Blue Bill","translator":"","tags":["react"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"roughViz-手绘风格图表","publish":true,"cover":"https://raw.githubusercontent.com/jwilber/random_data/master/roughViz_roughnessbars.png","showCover":true,"date":"2019-10-11","category":"frontend","url":"https://github.com/jwilber/roughViz","author":"Jared Wilber ","translator":"","tags":["chart"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"s3st直接将AWS S3文件流打印到terminal的工具","publish":true,"cover":"https://github.com/lmammino/s3st/raw/master/s3st.gif","showCover":true,"date":"2019-10-11","category":"nodejs","url":"https://github.com/lmammino/s3st","author":"Luciano Mammino","translator":"","tags":["s3"],"priority":1},"html":"<p>使用<code class=\"language-text\">npx s3st some-s3-bucket</code></p>"}},{"node":{"frontmatter":{"title":"react-tippy 轻量tooltip库","publish":true,"cover":"https://raw.githubusercontent.com/tvkhoa/react-tippy/master/doc/doc.gif","showCover":true,"date":"2019-10-10","category":"前端","url":"https://github.com/tvkhoa/react-tippy","author":"Khoa Thai","translator":"","tags":["react"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"react-useanimations react开源动画图标","publish":true,"cover":"https://github.com/useAnimations/react-useanimations/raw/master/useanimations-preview.gif","showCover":true,"date":"2019-10-10","category":"前端","url":"https://github.com/useAnimations/react-useanimations","author":"Tuan Phung ","translator":"","tags":["animation"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"使用face-api.js进行面部识别","publish":true,"cover":"","showCover":true,"date":"2019-10-12","category":"nodejs","url":"https://github.com/overflowjs-com/object_face_detection_webcam_react","author":"Deepak Gupta","translator":"","tags":["AI"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"ui95-windows95风格preact组件库","publish":true,"cover":"https://github.com/AshKyd/ui95/raw/master/docs/example.png","showCover":true,"date":"2019-10-10","category":"前端","url":"https://github.com/ashkyd/ui95","author":"Ash Kyd","translator":"","tags":["preact"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"我们应该使用package-lock.json","publish":true,"cover":"https://blog.logrocket.com/wp-content/uploads/2019/10/npm-nocdn.png","showCover":true,"date":"2019-10-11","category":"nodejs","url":"https://blog.logrocket.com/why-you-should-use-package-lock-json/","author":"Kostas Bariotis 编辑 Ka","translator":"","tags":["npm"],"priority":1},"html":"<p>刚有篇文章说<a href=\"https://www.zhouexin.com/issues/23#npm%20lockfiles%E7%9A%84%E5%AE%89%E5%85%A8%E9%9A%90%E6%82%A3\">要小心使用package.json</a>,马上这篇文章又说应该使用。</p>\n<ul>\n<li>使用<code class=\"language-text\">npm ci</code>来初始化已有项目，它不会像<code class=\"language-text\">npm install</code>更新lock file</li>\n<li>每个月更新一次依赖并做好检查</li>\n</ul>"}},{"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":"教程-使用 React Hooks创建视频聊天","publish":true,"cover":"https://s3.amazonaws.com/com.twilio.prod.twilio-docs/images/IJn0tLQyaYFOpy_DdqV5cF6J5CWT6mslruhTKouesj1o3D.width-808.png","showCover":true,"date":"2019-10-10","category":"前端","url":"https://www.twilio.com/blog/video-chat-react-hooks","author":"Phil Nash (Twilio)","translator":"","tags":["twilio"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"游戏-飞翔的鸡蛋(Aero Egg)","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":"教程-使用Nodejs,ElasticSearch和docker创建全文检索程序","publish":true,"cover":"","showCover":true,"date":"2019-10-11","category":"nodejs","url":"https://www.jsmonday.dev/articles/38/full-text-search-with-node-js-and-elasticsearch-on-docker","author":"Michele Riva","translator":"","tags":["elasticsearch"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"教程-怎样看WebPageTest工具的瀑布图","publish":true,"cover":"https://nooshu.github.io/images/2019/10/waterfall-ui-regions.png","showCover":true,"date":"2019-10-10","category":"前端","url":"https://nooshu.github.io/blog/2019/10/02/how-to-read-a-wpt-waterfall-chart/","author":"Matt Hobbs","translator":"","tags":["web"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"美最高法还是支持残疾人士，披萨店网站强硬也没用","publish":true,"cover":"https://fm.cnbc.com/applications/cnbc.com/resources/img/editorial/2019/10/07/106168016-1570460554323gettyimages-860662570.530x298.jpeg?v=1570460596","showCover":true,"date":"2019-10-10","category":"web","url":"https://www.cnbc.com/amp/2019/10/07/dominos-supreme-court.html","author":"Tucker Higgins","translator":"","tags":["accessibility"],"priority":1},"html":"<p><a href=\"/issues/15#%E5%AE%81%E6%84%BF%E6%89%93%E5%AE%98%E5%8F%B8%E4%B9%9F%E4%B8%8D%E6%83%B3%E6%94%B9%E7%BD%91%E7%AB%99-%E7%BE%8E%E5%9B%BD%E6%AF%94%E8%90%A8%E5%BA%97%E8%AF%B7%E6%B1%82%E6%9C%80%E9%AB%98%E6%B3%95%E5%85%B3%E9%97%AD%E5%85%B3%E4%BA%8E%E6%AE%8B%E7%96%BE%E4%BA%BA%E5%8F%AF%E8%AE%BF%E9%97%AE%E6%80%A7%E7%9A%84%E8%B5%B7%E8%AF%89\">宁愿打官司也不想改网站-美国比萨店请求最高法关闭关于残疾人可访问性的起诉</a>\n结果出炉，最高法依然支持残疾人士。👏</p>"}},{"node":{"frontmatter":{"title":"资源-Facebook Design-各种设备的图片和sketch文件","publish":true,"cover":"https://facebook.design/public/images/devices_header.png","showCover":true,"date":"2019-10-10","category":"前端","url":"https://facebook.design/devices#filters","author":"Facebook","translator":"","tags":["web"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"解构destructuring详细示例","publish":true,"cover":"","showCover":true,"date":"2019-10-12","category":"javascript","url":"https://buginit.com/javascript/javascript-destructuring-es6-the-complete-guide/","author":"Rajnish Rajput 编辑 Ka","translator":"","tags":["destructuring"],"priority":1},"html":"<p>几点需要注意</p>\n<h2 id=\"object-解构\"><a href=\"#object-%E8%A7%A3%E6%9E%84\" 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 解构</h2>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">let</span> a<span class=\"token punctuation\">,</span> b<span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// 数组这样写没问题</span>\n<span class=\"token punctuation\">[</span>a<span class=\"token punctuation\">,</span> b<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">1</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>a<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 1</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>b<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 2</span>\n\n\n<span class=\"token keyword\">let</span> y<span class=\"token punctuation\">,</span> z<span class=\"token punctuation\">;</span>\n<span class=\"token comment\">//object这样解构就会报错,因为{}会被认为是代码块block</span>\n<span class=\"token punctuation\">{</span>y<span class=\"token punctuation\">,</span> z<span class=\"token punctuation\">}</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>y<span class=\"token punctuation\">:</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> z<span class=\"token punctuation\">:</span> <span class=\"token number\">2</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// 正确的写法</span>\n<span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span>y<span class=\"token punctuation\">,</span> z<span class=\"token punctuation\">}</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>y<span class=\"token punctuation\">:</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> z<span class=\"token punctuation\">:</span> <span class=\"token number\">2</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<h2 id=\"动态解构\"><a href=\"#%E5%8A%A8%E6%80%81%E8%A7%A3%E6%9E%84\" 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>动态解构</h2>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">let</span> key <span class=\"token operator\">=</span> <span class=\"token string\">'z'</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">//动态解构</span>\n<span class=\"token keyword\">let</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">[</span>key<span class=\"token punctuation\">]</span><span class=\"token punctuation\">:</span> foo<span class=\"token punctuation\">}</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>z<span class=\"token punctuation\">:</span> <span class=\"token string\">'bar'</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// \"bar\"</span></code></pre></div>\n<h2 id=\"不能直接解构数组最后一个元素\"><a href=\"#%E4%B8%8D%E8%83%BD%E7%9B%B4%E6%8E%A5%E8%A7%A3%E6%9E%84%E6%95%B0%E7%BB%84%E6%9C%80%E5%90%8E%E4%B8%80%E4%B8%AA%E5%85%83%E7%B4%A0\" 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>不能直接解构数组最后一个元素</h2>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> <span class=\"token punctuation\">[</span><span class=\"token operator\">...</span>a<span class=\"token punctuation\">,</span>b<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span><span class=\"token number\">2</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 comment\">//错误</span>\n<span class=\"token comment\">//只能这样</span>\n<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span><span class=\"token number\">2</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 function\">slice</span><span class=\"token punctuation\">(</span><span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">//强行解构😅🤦‍♂️</span>\n<span class=\"token punctuation\">[</span><span class=\"token operator\">...</span>arr<span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">pop</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>"}},{"node":{"frontmatter":{"title":"细看javascript顶层await","publish":true,"cover":"","showCover":true,"date":"2019-10-12","category":"javascript","url":"https://blog.kazge.com/javascript/nodejs/2019/10/11/zh-top-level-await/","author":"Ka","translator":"","tags":["await"],"priority":1},"html":""}}]}}