{"pageContext":{"index":14,"total":367,"name":"2019-08-11","items":[{"node":{"frontmatter":{"title":"ES标准提议-脚本中以模块引入样式","publish":true,"cover":"","showCover":true,"date":"2019-08-08","category":"frontend","url":"https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/master/CSSModules/v1Explainer.md","author":"Dan Clark 编辑 Ka","translator":"","tags":["html"],"priority":1},"html":"<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">import</span> styles <span class=\"token keyword\">from</span> <span class=\"token string\">\"styles.css\"</span><span class=\"token punctuation\">;</span>\ndocument<span class=\"token punctuation\">.</span>adoptedStyleSheets <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token operator\">...</span>document<span class=\"token punctuation\">.</span>adoptedStyleSheets<span class=\"token punctuation\">,</span> styles<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></code></pre></div>\n<p>参见此<a href=\"https://github.com/w3c/webcomponents/issues/759\">讨论</a></p>"}},{"node":{"frontmatter":{"title":"Apollo Client已支持React Hooks","publish":true,"cover":"https://miro.medium.com/max/1000/1*DTxULMcMoWBFeDvDUp3WnQ@2x.png","showCover":true,"date":"2019-08-08","category":"nodejs","url":"https://blog.apollographql.com/apollo-client-now-with-react-hooks-676d116eeae2","author":"Hugh Willson 摘译 Ka","translator":"","tags":["graphql"],"priority":1},"html":"<h2 id=\"安装\"><a href=\"#%E5%AE%89%E8%A3%85\" 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<p><code class=\"language-text\">npm install @apollo/react-hooks</code></p>\n<h2 id=\"简洁的代码---使用usequery查询\"><a href=\"#%E7%AE%80%E6%B4%81%E7%9A%84%E4%BB%A3%E7%A0%81---%E4%BD%BF%E7%94%A8usequery%E6%9F%A5%E8%AF%A2\" 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>简洁的代码 - 使用useQuery查询</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 constant\">LAST_LAUNCH</span> <span class=\"token operator\">=</span> gql<span class=\"token template-string\"><span class=\"token string\">`\n  query lastLaunch {\n    launch {\n      id\n      timestamp\n    }\n  }\n`</span></span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">function</span> <span class=\"token function\">LastLaunch</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> loading<span class=\"token punctuation\">,</span> data <span class=\"token punctuation\">}</span> <span class=\"token operator\">=</span> <span class=\"token function\">useQuery</span><span class=\"token punctuation\">(</span><span class=\"token constant\">LAST_LAUNCH</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>\n    <span class=\"token operator\">&lt;</span>div<span class=\"token operator\">></span>\n      <span class=\"token operator\">&lt;</span>h1<span class=\"token operator\">></span>Last Launch<span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>h1<span class=\"token operator\">></span>\n      <span class=\"token punctuation\">{</span>loading <span class=\"token operator\">?</span> <span class=\"token operator\">&lt;</span>p<span class=\"token operator\">></span>Loading<span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>p<span class=\"token operator\">></span> <span class=\"token punctuation\">:</span> <span class=\"token operator\">&lt;</span>p<span class=\"token operator\">></span>Timestamp<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>data<span class=\"token punctuation\">.</span>launch<span class=\"token punctuation\">.</span>timestamp<span class=\"token punctuation\">}</span><span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>p<span class=\"token operator\">></span><span class=\"token punctuation\">}</span>\n    <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>div<span class=\"token operator\">></span>\n  <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<h2 id=\"使用usemutation修改\"><a href=\"#%E4%BD%BF%E7%94%A8usemutation%E4%BF%AE%E6%94%B9\" 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>使用useMutation修改</h2>\n<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\">Message</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>saveMessage<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span> loading <span class=\"token punctuation\">}</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token function\">useMutation</span><span class=\"token punctuation\">(</span><span class=\"token constant\">SAVE_MESSAGE</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">const</span> <span class=\"token punctuation\">[</span>deleteMessage<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token function\">useMutation</span><span class=\"token punctuation\">(</span><span class=\"token constant\">DELETE_MESSAGE</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">const</span> <span class=\"token punctuation\">{</span> data <span class=\"token punctuation\">}</span> <span class=\"token operator\">=</span> <span class=\"token function\">useQuery</span><span class=\"token punctuation\">(</span><span class=\"token constant\">GET_MESSAGE</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n  <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>\n    <span class=\"token operator\">&lt;</span>div<span class=\"token operator\">></span>\n      <span class=\"token operator\">&lt;</span>p<span class=\"token operator\">></span>\n        <span class=\"token punctuation\">{</span>loading\n          <span class=\"token operator\">?</span> <span class=\"token string\">'Loading ...'</span>\n          <span class=\"token punctuation\">:</span> <span class=\"token template-string\"><span class=\"token string\">`Message: </span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>data <span class=\"token operator\">&amp;&amp;</span> data<span class=\"token punctuation\">.</span>message <span class=\"token operator\">?</span> data<span class=\"token punctuation\">.</span>message<span class=\"token punctuation\">.</span>content <span class=\"token punctuation\">:</span> <span class=\"token string\">''</span><span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token string\">`</span></span><span class=\"token punctuation\">}</span>\n      <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>p<span class=\"token operator\">></span>\n      <span class=\"token operator\">&lt;</span>p<span class=\"token operator\">></span>\n        <span class=\"token operator\">&lt;</span>button onClick<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token function\">saveMessage</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">}</span><span class=\"token operator\">></span>Save<span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>button<span class=\"token operator\">></span>\n        <span class=\"token operator\">&lt;</span>button onClick<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token function\">deleteMessage</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">}</span><span class=\"token operator\">></span>Delete<span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>button<span class=\"token operator\">></span>\n      <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>p<span class=\"token operator\">></span>\n    <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>div<span class=\"token operator\">></span>\n  <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<h2 id=\"改进对typescript的支持\"><a href=\"#%E6%94%B9%E8%BF%9B%E5%AF%B9typescript%E7%9A%84%E6%94%AF%E6%8C%81\" 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>改进对typescript的支持</h2>\n<h2 id=\"减少包大小（减少一半）\"><a href=\"#%E5%87%8F%E5%B0%91%E5%8C%85%E5%A4%A7%E5%B0%8F%EF%BC%88%E5%87%8F%E5%B0%91%E4%B8%80%E5%8D%8A%EF%BC%89\" 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<h2 id=\"使用uselazyquery支持延迟查询\"><a href=\"#%E4%BD%BF%E7%94%A8uselazyquery%E6%94%AF%E6%8C%81%E5%BB%B6%E8%BF%9F%E6%9F%A5%E8%AF%A2\" 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>使用useLazyQuery支持延迟查询</h2>\n<h2 id=\"改进的文档\"><a href=\"#%E6%94%B9%E8%BF%9B%E7%9A%84%E6%96%87%E6%A1%A3\" 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><a href=\"https://www.apollographql.com/docs/react/\">改进的文档</a></h2>\n<p><img src=\"https://miro.medium.com/max/700/1*9wdVh5bOUWIveMl6ms1fHQ.png\"></p>"}},{"node":{"frontmatter":{"title":"FileSaver-浏览器直接保存文件","publish":true,"cover":"","showCover":true,"date":"2019-08-08","category":"javascript","url":"https://github.com/eligrey/FileSaver.js","author":"Eli Grey 编辑 Ka","translator":"","tags":["html"],"priority":1},"html":"<p>基于浏览器<a href=\"https://github.com/whatwg/streams/blob/master/transferable-streams-explainer.md\">TransformStream</a>的实现<a href=\"https://github.com/jimmywarting/StreamSaver.js\">StreamSaver</a>。</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">var</span> FileSaver <span class=\"token operator\">=</span> <span class=\"token function\">require</span><span class=\"token punctuation\">(</span><span class=\"token string\">'file-saver'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">//保存Blob</span>\n<span class=\"token keyword\">var</span> blob <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Blob</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">[</span><span class=\"token string\">\"Hello, world!\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>type<span class=\"token punctuation\">:</span> <span class=\"token string\">\"text/plain;charset=utf-8\"</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nFileSaver<span class=\"token punctuation\">.</span><span class=\"token function\">saveAs</span><span class=\"token punctuation\">(</span>blob<span class=\"token punctuation\">,</span> <span class=\"token string\">\"hello world.txt\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token comment\">// 保存链接</span>\nFileSaver<span class=\"token punctuation\">.</span><span class=\"token function\">saveAs</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"https://httpbin.org/image\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"image.jpg\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token comment\">//保存canvas</span>\n<span class=\"token keyword\">var</span> canvas <span class=\"token operator\">=</span> document<span class=\"token punctuation\">.</span><span class=\"token function\">getElementById</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"my-canvas\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\ncanvas<span class=\"token punctuation\">.</span><span class=\"token function\">toBlob</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">function</span><span class=\"token punctuation\">(</span>blob<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token function\">saveAs</span><span class=\"token punctuation\">(</span>blob<span class=\"token punctuation\">,</span> <span class=\"token string\">\"pretty image.png\"</span><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></code></pre></div>"}},{"node":{"frontmatter":{"title":"Intl.NumberFormat 新特性","publish":true,"cover":"https://v8.dev/_img/v8.svg","showCover":true,"date":"2019-08-08","category":"javascript","url":"https://2ality.com/2019/08/global-this.html","author":"Mathias Bynens and Shane F. Carr (V8)  摘译 Ka","translator":"","tags":["v8"],"priority":1},"html":"<p><a href=\"https://github.com/tc39/proposal-unified-intl-numberformat\">提议</a></p>\n<h2 id=\"现在支持-bigint\"><a href=\"#%E7%8E%B0%E5%9C%A8%E6%94%AF%E6%8C%81-bigint\" 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>现在支持 BigInt</h2>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> formatter <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Intl<span class=\"token punctuation\">.</span>NumberFormat</span><span class=\"token punctuation\">(</span><span class=\"token string\">'fr'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nformatter<span class=\"token punctuation\">.</span><span class=\"token function\">format</span><span class=\"token punctuation\">(</span><span class=\"token number\">12345678901234567890</span>n<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// → '12 345 678 901 234 567 890'</span>\nformatter<span class=\"token punctuation\">.</span><span class=\"token function\">formatToParts</span><span class=\"token punctuation\">(</span><span class=\"token number\">123456</span>n<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// → [</span>\n<span class=\"token comment\">// →   { type: 'integer', value: '123' },</span>\n<span class=\"token comment\">// →   { type: 'group', value: ' ' },</span>\n<span class=\"token comment\">// →   { type: 'integer', value: '456' }</span>\n<span class=\"token comment\">// → ]</span></code></pre></div>\n<h2 id=\"支持计量单位\"><a href=\"#%E6%94%AF%E6%8C%81%E8%AE%A1%E9%87%8F%E5%8D%95%E4%BD%8D\" 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><a href=\"https://v8.dev/features/intl-numberformat#units\">支持计量单位</a></h2>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> formatter <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Intl<span class=\"token punctuation\">.</span>NumberFormat</span><span class=\"token punctuation\">(</span><span class=\"token string\">'en'</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>\n  style<span class=\"token punctuation\">:</span> <span class=\"token string\">'unit'</span><span class=\"token punctuation\">,</span>\n  unit<span class=\"token punctuation\">:</span> <span class=\"token string\">'kilobyte'</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nformatter<span class=\"token punctuation\">.</span><span class=\"token function\">format</span><span class=\"token punctuation\">(</span><span class=\"token number\">1.234</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// → '1.234 kB'</span>\nformatter<span class=\"token punctuation\">.</span><span class=\"token function\">format</span><span class=\"token punctuation\">(</span><span class=\"token number\">123.4</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// → '123.4 kB'</span></code></pre></div>\n<h2 id=\"常用方法\"><a href=\"#%E5%B8%B8%E7%94%A8%E6%96%B9%E6%B3%95\" 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> formatter <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Intl<span class=\"token punctuation\">.</span>NumberFormat</span><span class=\"token punctuation\">(</span><span class=\"token string\">'en'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nformatter<span class=\"token punctuation\">.</span><span class=\"token function\">format</span><span class=\"token punctuation\">(</span><span class=\"token number\">987654.321</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// → '987,654.321'</span>\nformatter<span class=\"token punctuation\">.</span><span class=\"token function\">formatToParts</span><span class=\"token punctuation\">(</span><span class=\"token number\">987654.321</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// → [</span>\n<span class=\"token comment\">// →   { type: 'integer', value: '987' },</span>\n<span class=\"token comment\">// →   { type: 'group', value: ',' },</span>\n<span class=\"token comment\">// →   { type: 'integer', value: '654' },</span>\n<span class=\"token comment\">// →   { type: 'decimal', value: '.' },</span>\n<span class=\"token comment\">// →   { type: 'fraction', value: '321' }</span>\n<span class=\"token comment\">// → ]</span></code></pre></div>\n<h2 id=\"码农们需要的\"><a href=\"#%E7%A0%81%E5%86%9C%E4%BB%AC%E9%9C%80%E8%A6%81%E7%9A%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<h3 id=\"1024\"><a href=\"#1024\" 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>1024</h3>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token comment\">// Test compact notation.</span>\n<span class=\"token keyword\">const</span> formatter <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Intl<span class=\"token punctuation\">.</span>NumberFormat</span><span class=\"token punctuation\">(</span><span class=\"token string\">'en'</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>\n  notation<span class=\"token punctuation\">:</span> <span class=\"token string\">'compact'</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nformatter<span class=\"token punctuation\">.</span><span class=\"token function\">format</span><span class=\"token punctuation\">(</span><span class=\"token number\">1234.56</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// → '1.2K'</span>\nformatter<span class=\"token punctuation\">.</span><span class=\"token function\">format</span><span class=\"token punctuation\">(</span><span class=\"token number\">123456</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// → '123K'</span>\nformatter<span class=\"token punctuation\">.</span><span class=\"token function\">format</span><span class=\"token punctuation\">(</span><span class=\"token number\">123456789</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// → '123M'</span></code></pre></div>\n<h3 id=\"兆每秒科学范式\"><a href=\"#%E5%85%86%E6%AF%8F%E7%A7%92%E7%A7%91%E5%AD%A6%E8%8C%83%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>兆每秒(<a href=\"https://en.wikipedia.org/wiki/Scientific_notation\">科学范式</a>)</h3>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> formatter <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Intl<span class=\"token punctuation\">.</span>NumberFormat</span><span class=\"token punctuation\">(</span><span class=\"token string\">'en'</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>\n  style<span class=\"token punctuation\">:</span> <span class=\"token string\">'unit'</span><span class=\"token punctuation\">,</span>\n  unit<span class=\"token punctuation\">:</span> <span class=\"token string\">'meter-per-second'</span><span class=\"token punctuation\">,</span>\n  notation<span class=\"token punctuation\">:</span> <span class=\"token string\">'scientific'</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nformatter<span class=\"token punctuation\">.</span><span class=\"token function\">format</span><span class=\"token punctuation\">(</span><span class=\"token number\">299792458</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// → '2.998E8 m/s'</span></code></pre></div>\n<h3 id=\"百分比\"><a href=\"#%E7%99%BE%E5%88%86%E6%AF%94\" 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>百分比</h3>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> formatter <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Intl<span class=\"token punctuation\">.</span>NumberFormat</span><span class=\"token punctuation\">(</span><span class=\"token string\">'en'</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>\n  style<span class=\"token punctuation\">:</span> <span class=\"token string\">'unit'</span><span class=\"token punctuation\">,</span>\n  unit<span class=\"token punctuation\">:</span> <span class=\"token string\">'percent'</span><span class=\"token punctuation\">,</span>\n  signDisplay<span class=\"token punctuation\">:</span> <span class=\"token string\">'always'</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nformatter<span class=\"token punctuation\">.</span><span class=\"token function\">format</span><span class=\"token punctuation\">(</span><span class=\"token operator\">-</span><span class=\"token number\">12.34</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// → '-12.34%'</span>\nformatter<span class=\"token punctuation\">.</span><span class=\"token function\">format</span><span class=\"token punctuation\">(</span><span class=\"token number\">12.34</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// → '+12.34%'</span>\nformatter<span class=\"token punctuation\">.</span><span class=\"token function\">format</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\">// → '+0%'</span>\nformatter<span class=\"token punctuation\">.</span><span class=\"token function\">format</span><span class=\"token punctuation\">(</span><span class=\"token operator\">-</span><span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// → '-0%'</span></code></pre></div>\n<h3 id=\"金额\"><a href=\"#%E9%87%91%E9%A2%9D\" 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>金额</h3>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> formatter <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Intl<span class=\"token punctuation\">.</span>NumberFormat</span><span class=\"token punctuation\">(</span><span class=\"token string\">'en'</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>\n  style<span class=\"token punctuation\">:</span> <span class=\"token string\">'currency'</span><span class=\"token punctuation\">,</span>\n  currency<span class=\"token punctuation\">:</span> <span class=\"token string\">'USD'</span><span class=\"token punctuation\">,</span>\n  signDisplay<span class=\"token punctuation\">:</span> <span class=\"token string\">'exceptZero'</span><span class=\"token punctuation\">,</span>\n  currencySign<span class=\"token punctuation\">:</span> <span class=\"token string\">'accounting'</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nformatter<span class=\"token punctuation\">.</span><span class=\"token function\">format</span><span class=\"token punctuation\">(</span><span class=\"token operator\">-</span><span class=\"token number\">12.34</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// → '($12.34)'</span>\nformatter<span class=\"token punctuation\">.</span><span class=\"token function\">format</span><span class=\"token punctuation\">(</span><span class=\"token number\">12.34</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// → '+$12.34'</span>\nformatter<span class=\"token punctuation\">.</span><span class=\"token function\">format</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\">// → '$0.00'</span>\nformatter<span class=\"token punctuation\">.</span><span class=\"token function\">format</span><span class=\"token punctuation\">(</span><span class=\"token operator\">-</span><span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// → '($0.00)'</span></code></pre></div>"}},{"node":{"frontmatter":{"title":"TypeLighterJS输入打字效果","publish":true,"cover":"https://github.com/EdernClemente/TypeLighterJS/raw/master/images/foo.gif","showCover":true,"date":"2019-08-08","category":"frontend","url":"https://github.com/EdernClemente/TypeLighterJS","author":"Edern Clemente","translator":"","tags":["animation"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"alpaca-免手续费炒美股api","publish":true,"cover":"https://docs.alpaca.markets/images/trade-flow.png","showCover":true,"date":"2019-08-08","category":"nodejs","url":"https://github.com/alpacahq/alpaca-trade-api-js","author":"编辑 Ka","translator":"","tags":["stock"],"priority":1},"html":"<p>alpaca(羊驼)是用来炒美股的0手续费的api。其提供实时股票数据，和交易api。</p>\n<p><a href=\"https://docs.alpaca.markets/about-us/#regulated-financial-institution\">公司背景</a></p>\n<p><a href=\"https://docs.alpaca.markets/account-plans/#markets-supported\">尚不支持非美籍账户</a></p>"}},{"node":{"frontmatter":{"title":"css动画讲解","publish":true,"cover":"https://miro.medium.com/max/2024/1*aMOZ578-yNodBhdisfYGWQ.gif","showCover":true,"date":"2019-08-08","category":"frontend","url":"https://blog.prototypr.io/this-aint-disney-a-practical-guide-to-css-transitions-and-animations-a8b87e7c5531","author":"Mohammed Ibrahim","translator":"","tags":["animation"],"priority":1},"html":"<h2 id=\"时序动画\"><a href=\"#%E6%97%B6%E5%BA%8F%E5%8A%A8%E7%94%BB\" 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<h3 id=\"线性和贝塞尔曲线\"><a href=\"#%E7%BA%BF%E6%80%A7%E5%92%8C%E8%B4%9D%E5%A1%9E%E5%B0%94%E6%9B%B2%E7%BA%BF\" 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>线性和贝塞尔曲线</h3>\n<p><img src=\"https://miro.medium.com/max/2064/1*pDUYsyV6JQjoD8_HROrg0Q.gif\"></p>\n<h3 id=\"几种常见贝塞尔曲线\"><a href=\"#%E5%87%A0%E7%A7%8D%E5%B8%B8%E8%A7%81%E8%B4%9D%E5%A1%9E%E5%B0%94%E6%9B%B2%E7%BA%BF\" 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>几种常见贝塞尔曲线</h3>\n<p><img src=\"https://miro.medium.com/max/700/1*sZE1y0ewdM2VH8SXoY3dwg.png\"></p>\n<ul>\n<li>linear: 匀速，适合属性变化（颜色，透明度）。</li>\n<li>ease: 快加速，慢减速。</li>\n<li>ease-in: 慢加速到指定速度，无减速。适合元素出屏。</li>\n<li>ease-out: 无加速直接到指定速度，满减速。适合入屏。</li>\n<li>ease-in-out: 慢加速，慢减速。\n<img src=\"https://miro.medium.com/max/700/1*PQR9oa_BDoqBlXCa5E-1Aw.gif\"></li>\n</ul>\n<h2 id=\"transitions\"><a href=\"#transitions\" 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>Transitions</h2>\n<p>由元素的状态改变触发\n例如：</p>\n<div class=\"gatsby-highlight\" data-language=\"html\"><pre class=\"language-html\"><code class=\"language-html\">.glowAndGrow {\n  height: 100px;\n  transition: background-color 0.5s, height 1s;\n}\n.glowAndGrow:hover {\n  background-color: gold;\n  height: 200px;\n}\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>glowAndGrow<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>This box glows and grows on hover<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span></code></pre></div>\n<h2 id=\"animations\"><a href=\"#animations\" 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>Animations</h2>\n<p>由keyframes组成动画</p>"}},{"node":{"frontmatter":{"title":"frontless-同构服务端渲染实时框架","publish":true,"cover":"https://frontless.js.org/assets/img/logo.svg","showCover":true,"date":"2019-08-08","category":"nodejs","url":"https://github.com/nesterow/frontless","author":"Anton Nesterov 编辑 Ka","translator":"","tags":["isomorphic"],"priority":1},"html":"<p>整合了 <a href=\"https://github.com/feathersjs/feathers\">FeathersJS</a>(基于 express 的 websocket 实时协议) , <a href=\"https://github.com/riot/riot\">RiotJS</a>(自定义标签 mvp 框架) | Turbolinks(移动端触摸导航加速) | ExpressJS。</p>\n<h2 id=\"服务端推送更新的例子\"><a href=\"#%E6%9C%8D%E5%8A%A1%E7%AB%AF%E6%8E%A8%E9%80%81%E6%9B%B4%E6%96%B0%E7%9A%84%E4%BE%8B%E5%AD%90\" 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><a href=\"https://frontless.js.org/en/server_sent_state.html\">服务端推送更新的例子</a></h2>\n<h3 id=\"组件代码\"><a href=\"#%E7%BB%84%E4%BB%B6%E4%BB%A3%E7%A0%81\" 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>组件代码</h3>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token operator\">&lt;</span>my<span class=\"token operator\">-</span>component<span class=\"token operator\">></span>\n  <span class=\"token operator\">&lt;</span>div<span class=\"token operator\">></span><span class=\"token punctuation\">{</span>state<span class=\"token punctuation\">.</span>value<span class=\"token punctuation\">}</span><span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>div<span class=\"token operator\">></span>\n  <span class=\"token operator\">&lt;</span>script<span class=\"token operator\">></span>\n    <span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span>\n      id<span class=\"token punctuation\">:</span> <span class=\"token string\">\"message\"</span><span class=\"token punctuation\">,</span>\n      state<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>\n        value<span class=\"token punctuation\">:</span> <span class=\"token string\">''</span>\n      <span class=\"token punctuation\">}</span>\n    <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n  <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>script<span class=\"token operator\">></span>\n<span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>my<span class=\"token operator\">-</span>component<span class=\"token operator\">></span></code></pre></div>\n<h3 id=\"api-代码\"><a href=\"#api-%E4%BB%A3%E7%A0%81\" 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>api 代码</h3>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\">app<span class=\"token punctuation\">.</span><span class=\"token function\">use</span><span class=\"token punctuation\">(</span><span class=\"token string\">'myservice'</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">async</span> <span class=\"token function\">create</span><span class=\"token punctuation\">(</span>data<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">return</span> app<span class=\"token punctuation\">.</span><span class=\"token function\">setState</span><span class=\"token punctuation\">(</span><span class=\"token string\">'message'</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>\n      value<span class=\"token punctuation\">:</span> <span class=\"token string\">'Hello!'</span>\n    <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></code></pre></div>\n<h3 id=\"触发状态修改的代码\"><a href=\"#%E8%A7%A6%E5%8F%91%E7%8A%B6%E6%80%81%E4%BF%AE%E6%94%B9%E7%9A%84%E4%BB%A3%E7%A0%81\" 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>触发状态修改的代码</h3>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\">client<span class=\"token punctuation\">.</span><span class=\"token function\">service</span><span class=\"token punctuation\">(</span><span class=\"token string\">'myservice'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">create</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></code></pre></div>"}},{"node":{"frontmatter":{"title":"globalThis 提议-访问全局对象的标准方式","publish":true,"cover":"https://2ality.com/2019/08/global-this/global-scope.svg","showCover":true,"date":"2019-08-08","category":"javascript","url":"https://2ality.com/2019/08/global-this.html","author":"Dr. Axel Rauschmayer 摘译 Ka","translator":"","tags":["this"],"priority":1},"html":"<p><a href=\"https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/globalThis\">globalThis</a>提供了一个标准的方式去获取不同环境下的全局对象。</p>\n<p>对于 nodejs 里，module 里的变量不是全局变量。需要通过 <a href=\"https://nodejs.org/api/globals.html#globals_global\">global</a></p>\n<p>事实上，在不同的 JavaScript 环境中拿到全局对象是需要不同的语句的。在 Web 中，可以通过 window、self 或者 frames 取到全局对象，但是在 Web Workers 中只有 self 可以。在 Node.js 中，它们都无法获取，必须使用 global。在松散模式下，可以在函数中返回 this 来获取全局对象，但是在严格模式下 this 会返回 undefined 。</p>"}},{"node":{"frontmatter":{"title":"javascript位运算符妙用","publish":true,"cover":"https://i2.wp.com/blog.logrocket.com/wp-content/uploads/2019/08/javascript-bitwise-operators.jpeg?w=730&ssl=1","showCover":true,"date":"2019-08-08","category":"javascript","url":"https://blog.logrocket.com/interesting-use-cases-for-javascript-bitwise-operators/","author":"Glad Chinda 摘译 Ka","translator":"","tags":["bitwise"],"priority":1},"html":"<h2 id=\"-not非\"><a href=\"#-not%E9%9D%9E\" 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>~ NOT(非)</h2>\n<p><code class=\"language-text\">~A = - (A+1)</code></p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token comment\">//将indexOf转为boolean</span>\n<span class=\"token operator\">!</span><span class=\"token operator\">!</span><span class=\"token operator\">~</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">indexOf</span><span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<h2 id=\"-and与\"><a href=\"#-and%E4%B8%8E\" 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>&#x26; AND(与)</h2>\n<div class=\"gatsby-highlight\" data-language=\"shell\"><pre class=\"language-shell\"><code class=\"language-shell\"><span class=\"token punctuation\">(</span>0 <span class=\"token operator\">&amp;</span> 0<span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span><span class=\"token operator\">=</span> 0     // 0 x 0 <span class=\"token operator\">=</span> 0\n<span class=\"token punctuation\">(</span>0 <span class=\"token operator\">&amp;</span> 1<span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span><span class=\"token operator\">=</span> 0     // 0 x 1 <span class=\"token operator\">=</span> 0\n<span class=\"token punctuation\">(</span>1 <span class=\"token operator\">&amp;</span> 0<span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span><span class=\"token operator\">=</span> 0     // 1 x 0 <span class=\"token operator\">=</span> 0\n<span class=\"token punctuation\">(</span>1 <span class=\"token operator\">&amp;</span> 1<span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span><span class=\"token operator\">=</span> 1     // 1 x 1 <span class=\"token operator\">=</span> 1</code></pre></div>\n<h3 id=\"去掉位元\"><a href=\"#%E5%8E%BB%E6%8E%89%E4%BD%8D%E5%85%83\" 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>去掉位元</h3>\n<div class=\"gatsby-highlight\" data-language=\"shell\"><pre class=\"language-shell\"><code class=\"language-shell\"><span class=\"token punctuation\">(</span>A <span class=\"token operator\">&amp;</span> 0 <span class=\"token operator\">=</span> 0<span class=\"token punctuation\">)</span> — The bit is always turned off by a corresponding 0 bit.\n<span class=\"token punctuation\">(</span>A <span class=\"token operator\">&amp;</span> 1 <span class=\"token operator\">=</span> A<span class=\"token punctuation\">)</span> — The bit remains unchanged when paired with a</code></pre></div>\n<h3 id=\"检查位元\"><a href=\"#%E6%A3%80%E6%9F%A5%E4%BD%8D%E5%85%83\" 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>检查位元</h3>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> mask <span class=\"token operator\">=</span> <span class=\"token number\">0b010000</span><span class=\"token punctuation\">;</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token number\">0b110010</span> <span class=\"token operator\">&amp;</span> mask<span class=\"token punctuation\">)</span> <span class=\"token operator\">===</span> mask<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">//</span></code></pre></div>\n<h3 id=\"判断奇偶\"><a href=\"#%E5%88%A4%E6%96%AD%E5%A5%87%E5%81%B6\" 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>判断奇偶</h3>\n<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\">isOdd</span><span class=\"token punctuation\">(</span>int<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>int <span class=\"token operator\">&amp;</span> <span class=\"token number\">1</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 comment\">//相当于int % 2 == 0</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token keyword\">function</span> <span class=\"token function\">isEven</span><span class=\"token punctuation\">(</span>int<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>int <span class=\"token operator\">&amp;</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">===</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token function\">isOdd</span><span class=\"token punctuation\">(</span><span class=\"token number\">34</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// false</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token function\">isOdd</span><span class=\"token punctuation\">(</span><span class=\"token operator\">-</span><span class=\"token number\">63</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// true</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token function\">isEven</span><span class=\"token punctuation\">(</span><span class=\"token operator\">-</span><span class=\"token number\">12</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// true</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token function\">isEven</span><span class=\"token punctuation\">(</span><span class=\"token number\">199</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// false</span></code></pre></div>\n<h2 id=\"-or（或）\"><a href=\"#-or%EF%BC%88%E6%88%96%EF%BC%89\" 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>| OR（或）</h2>\n<div class=\"gatsby-highlight\" data-language=\"shell\"><pre class=\"language-shell\"><code class=\"language-shell\"><span class=\"token punctuation\">(</span>0 <span class=\"token operator\">|</span> 0<span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span><span class=\"token operator\">=</span> 0\n<span class=\"token punctuation\">(</span>0 <span class=\"token operator\">|</span> 1<span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span><span class=\"token operator\">=</span> 1\n<span class=\"token punctuation\">(</span>1 <span class=\"token operator\">|</span> 0<span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span><span class=\"token operator\">=</span> 1\n<span class=\"token punctuation\">(</span>1 <span class=\"token operator\">|</span> 1<span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span><span class=\"token operator\">=</span> 1</code></pre></div>\n<h3 id=\"打开位元\"><a href=\"#%E6%89%93%E5%BC%80%E4%BD%8D%E5%85%83\" 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>打开位元</h3>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">(A | 0 = A)\n(A | 1 = 1)</code></pre></div>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> mask <span class=\"token operator\">=</span> <span class=\"token number\">0b10101010</span><span class=\"token punctuation\">;</span>\n\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token number\">0b11010000</span> <span class=\"token operator\">|</span> mask<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 0b11111010</span></code></pre></div>\n<h2 id=\"-xor-异或\"><a href=\"#-xor-%E5%BC%82%E6%88%96\" 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>^ XOR (异或)</h2>\n<div class=\"gatsby-highlight\" data-language=\"shell\"><pre class=\"language-shell\"><code class=\"language-shell\"><span class=\"token punctuation\">(</span>0 ^ 0<span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span><span class=\"token operator\">=</span> 0\n<span class=\"token punctuation\">(</span>0 ^ 1<span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span><span class=\"token operator\">=</span> 1\n<span class=\"token punctuation\">(</span>1 ^ 0<span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span><span class=\"token operator\">=</span> 1\n<span class=\"token punctuation\">(</span>1 ^ 1<span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span><span class=\"token operator\">=</span> 0</code></pre></div>\n<h3 id=\"转换位元\"><a href=\"#%E8%BD%AC%E6%8D%A2%E4%BD%8D%E5%85%83\" 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>转换位元</h3>\n<p>(A ^ 0 = A)\nlet A = 1\n(A ^ 1 = 1)\n(A ^ 1 = 0)</p>\n<h2 id=\"-左移\"><a href=\"#-%E5%B7%A6%E7%A7%BB\" 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>&#x3C;&#x3C; (左移)</h2>\n<h3 id=\"rgb-转-16-进制\"><a href=\"#rgb-%E8%BD%AC-16-%E8%BF%9B%E5%88%B6\" 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>RGB 转 16 进制</h3>\n<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\">rgbToHex</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">[</span>red <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> green <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> blue <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">return</span> <span class=\"token template-string\"><span class=\"token string\">`#</span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>red <span class=\"token operator\">&lt;&lt;</span> <span class=\"token number\">16</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">|</span> <span class=\"token punctuation\">(</span>green <span class=\"token operator\">&lt;&lt;</span> <span class=\"token number\">8</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">|</span> blue<span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">toString</span><span class=\"token punctuation\">(</span><span class=\"token number\">16</span><span class=\"token punctuation\">)</span><span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token string\">`</span></span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<h2 id=\"-右移\"><a href=\"#-%E5%8F%B3%E7%A7%BB\" 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<h3 id=\"hex-转-rgb\"><a href=\"#hex-%E8%BD%AC-rgb\" 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>hex 转 RGB</h3>\n<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\">hexToRgb</span><span class=\"token punctuation\">(</span>hex<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  hex <span class=\"token operator\">=</span> hex<span class=\"token punctuation\">.</span><span class=\"token function\">replace</span><span class=\"token punctuation\">(</span><span class=\"token regex\">/^#?([0-9a-f]{6})$/i</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'$1'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  hex <span class=\"token operator\">=</span> <span class=\"token function\">Number</span><span class=\"token punctuation\">(</span><span class=\"token template-string\"><span class=\"token string\">`0x</span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>hex<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token string\">`</span></span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n  <span class=\"token keyword\">return</span> <span class=\"token punctuation\">[</span>\n    <span class=\"token punctuation\">(</span>hex <span class=\"token operator\">>></span> <span class=\"token number\">16</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span> <span class=\"token number\">0xff</span><span class=\"token punctuation\">,</span> <span class=\"token comment\">// red</span>\n    <span class=\"token punctuation\">(</span>hex <span class=\"token operator\">>></span> <span class=\"token number\">8</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;</span> <span class=\"token number\">0xff</span><span class=\"token punctuation\">,</span> <span class=\"token comment\">// green</span>\n    hex <span class=\"token operator\">&amp;</span> <span class=\"token number\">0xff</span> <span class=\"token comment\">// blue</span>\n  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<h2 id=\"（补零右移）\"><a href=\"#%EF%BC%88%E8%A1%A5%E9%9B%B6%E5%8F%B3%E7%A7%BB%EF%BC%89\" 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<h2 id=\"基于位元的配置\"><a href=\"#%E5%9F%BA%E4%BA%8E%E4%BD%8D%E5%85%83%E7%9A%84%E9%85%8D%E7%BD%AE\" 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 constant\">LIST_FRACTION</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x1</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// (001)</span>\n<span class=\"token keyword\">const</span> <span class=\"token constant\">LIST_UNIQUE</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x2</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// (010)</span>\n<span class=\"token keyword\">const</span> <span class=\"token constant\">LIST_SORTED</span> <span class=\"token operator\">=</span> <span class=\"token number\">0x4</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// (100)</span>\n\n<span class=\"token comment\">// 打开配置</span>\n<span class=\"token keyword\">const</span> <span class=\"token constant\">LIST_ALL</span> <span class=\"token operator\">=</span> <span class=\"token constant\">LIST_FRACTION</span> <span class=\"token operator\">|</span> <span class=\"token constant\">LIST_UNIQUE</span> <span class=\"token operator\">|</span> <span class=\"token constant\">LIST_SORTED</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// (111)</span>\n\n<span class=\"token comment\">// 关闭配置</span>\n<span class=\"token keyword\">const</span> <span class=\"token constant\">LIST_DEFAULT</span> <span class=\"token operator\">=</span> <span class=\"token constant\">LIST_ALL</span> <span class=\"token operator\">^</span> <span class=\"token constant\">LIST_UNIQUE</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// (101)</span>\n\n<span class=\"token comment\">//判断配置</span>\n<span class=\"token punctuation\">(</span>flag <span class=\"token operator\">&amp;</span> <span class=\"token constant\">LIST_UNIQUE</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">===</span> <span class=\"token constant\">LIST_UNIQUE</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">//(存在)</span>\n<span class=\"token punctuation\">(</span>flag <span class=\"token operator\">&amp;</span> <span class=\"token constant\">LIST_UNIQUE</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">!==</span> <span class=\"token constant\">LIST_UNIQUE</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">//(不存在)</span></code></pre></div>\n<blockquote>\n<p>貌似 javscript 不需要这些 C 风格的。</p>\n</blockquote>"}},{"node":{"frontmatter":{"title":"monitr - 出自雅虎的nodejs监控包","publish":true,"cover":"","showCover":true,"date":"2019-08-08","category":"nodejs","url":"https://github.com/yahoo/monitr","author":"Yahoo 编辑 Ka","translator":"","tags":["monitor"],"priority":1},"html":"<h2 id=\"安装使用\"><a href=\"#%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8\" 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<p><code class=\"language-text\">npm install monitr</code></p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">var</span> monitor <span class=\"token operator\">=</span> <span class=\"token function\">require</span><span class=\"token punctuation\">(</span><span class=\"token string\">'monitr'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nmonitor<span class=\"token punctuation\">.</span><span class=\"token function\">start</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nmonitor<span class=\"token punctuation\">.</span><span class=\"token function\">stop</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<h2 id=\"运行方式\"><a href=\"#%E8%BF%90%E8%A1%8C%E6%96%B9%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>运行方式</h2>\n<p>会创建独立的线程监控使用此包的node进程的状态，通过本地域socket发送json格式统计信息.</p>\n<div class=\"gatsby-highlight\" data-language=\"json\"><pre class=\"language-json\"><code class=\"language-json\"> <span class=\"token punctuation\">{</span> status<span class=\"token operator\">:</span>\n     <span class=\"token punctuation\">{</span> pid<span class=\"token operator\">:</span> &lt;pid of the node process><span class=\"token punctuation\">,</span>\n       ts<span class=\"token operator\">:</span> &lt;current time stamp><span class=\"token punctuation\">,</span>\n       cluster<span class=\"token operator\">:</span> &lt;process group id><span class=\"token punctuation\">,</span>\n       reqstotal<span class=\"token operator\">:</span> &lt;total requests processed by this node process server><span class=\"token punctuation\">,</span>\n       utcstart<span class=\"token operator\">:</span> &lt;when the process was started><span class=\"token punctuation\">,</span>\n       events<span class=\"token operator\">:</span> &lt;number of new reports being processed since last stats reporting><span class=\"token punctuation\">,</span><span class=\"token punctuation\">,</span>\n       cpu<span class=\"token operator\">:</span> &lt;cpu usage><span class=\"token punctuation\">,</span>\n       mem<span class=\"token operator\">:</span> &lt;memory usage><span class=\"token punctuation\">,</span>\n       cpuperreq<span class=\"token operator\">:</span> &lt;cpu usage per request><span class=\"token punctuation\">,</span>\n       oreqs<span class=\"token operator\">:</span> &lt;current open requests count><span class=\"token punctuation\">,</span>\n       sys_cpu<span class=\"token operator\">:</span> &lt;system cpu load><span class=\"token punctuation\">,</span>\n       oconns<span class=\"token operator\">:</span> &lt;current open connections count><span class=\"token punctuation\">,</span>\n       user_cpu<span class=\"token operator\">:</span> &lt;user cpu load><span class=\"token punctuation\">,</span>\n       rps<span class=\"token operator\">:</span> &lt;requests per second><span class=\"token punctuation\">,</span>\n       kbs_out<span class=\"token operator\">:</span> &lt;kbs of data transferred since last stats reporting><span class=\"token punctuation\">,</span>\n       elapsed<span class=\"token operator\">:</span> &lt;time elapsed since last event><span class=\"token punctuation\">,</span>\n       kb_trans<span class=\"token operator\">:</span> &lt;total kbs of data transferred><span class=\"token punctuation\">,</span>\n       jiffyperreq<span class=\"token operator\">:</span> &lt;cpu usage in terms of ticks per request><span class=\"token punctuation\">,</span>\n       gc<span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n           scavenge<span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span> count<span class=\"token operator\">:</span> &lt;number><span class=\"token punctuation\">,</span> elapsed_ms<span class=\"token operator\">:</span> &lt;number><span class=\"token punctuation\">,</span> max_ms<span class=\"token operator\">:</span> &lt;number> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n           marksweep<span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span> count<span class=\"token operator\">:</span> &lt;number><span class=\"token punctuation\">,</span> elapsed_ms<span class=\"token operator\">:</span> &lt;number><span class=\"token punctuation\">,</span> max_ms<span class=\"token operator\">:</span> &lt;number> <span class=\"token punctuation\">}</span>\n       <span class=\"token punctuation\">}</span>\n    <span class=\"token punctuation\">}</span>\n <span class=\"token punctuation\">}</span></code></pre></div>"}},{"node":{"frontmatter":{"title":"react-archer在元素之间画线","publish":true,"cover":"https://raw.githubusercontent.com/pierpo/react-archer/master/example.png","showCover":true,"date":"2019-08-08","category":"frontend","url":"https://github.com/pierpo/react-archer","author":"Pierre Poupin","translator":"","tags":["react"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"react-flippy创建翻面卡","publish":true,"cover":"https://github.com/sbayd/react-flippy/raw/master/hover_flippy.gif","showCover":true,"date":"2019-08-08","category":"frontend","url":"https://github.com/sbayd/react-flippy","author":"Berkay Aydın","translator":"","tags":["react"],"priority":2},"html":"<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">import</span> Flippy<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span> FrontSide<span class=\"token punctuation\">,</span> BackSide <span class=\"token punctuation\">}</span> <span class=\"token keyword\">from</span> <span class=\"token string\">'react-flippy'</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// ... component class</span>\n<span class=\"token function\">render</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\t<span class=\"token comment\">// .. return</span>\n  <span class=\"token operator\">&lt;</span>Flippy\n    flipOnHover<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token boolean\">false</span><span class=\"token punctuation\">}</span> <span class=\"token comment\">// default false</span>\n    flipOnClick<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token boolean\">true</span><span class=\"token punctuation\">}</span> <span class=\"token comment\">// default false</span>\n    flipDirection<span class=\"token operator\">=</span><span class=\"token string\">\"horizontal\"</span> <span class=\"token comment\">// horizontal or vertical</span>\n    ref<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token punctuation\">(</span>r<span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>flippy <span class=\"token operator\">=</span> r<span class=\"token punctuation\">}</span> <span class=\"token comment\">// to use toggle method like this.flippy.toggle()</span>\n    <span class=\"token comment\">// if you pass isFlipped prop component will be controlled component.</span>\n    <span class=\"token comment\">// and other props, which will go to div</span>\n    style<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token punctuation\">{</span> width<span class=\"token punctuation\">:</span> <span class=\"token string\">'200px'</span><span class=\"token punctuation\">,</span> height<span class=\"token punctuation\">:</span> <span class=\"token string\">'200px'</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span> <span class=\"token comment\">/// these are optional style, it is not necessary</span>\n  <span class=\"token operator\">></span>\n    <span class=\"token operator\">&lt;</span>FrontSide\n      style<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token punctuation\">{</span>\n        backgroundColor<span class=\"token punctuation\">:</span> <span class=\"token string\">'#41669d'</span><span class=\"token punctuation\">,</span>\n      <span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span>\n    <span class=\"token operator\">></span>\n      <span class=\"token constant\">RICK</span>\n    <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>FrontSide<span class=\"token operator\">></span>\n    <span class=\"token operator\">&lt;</span>BackSide\n      style<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token punctuation\">{</span> backgroundColor<span class=\"token punctuation\">:</span> <span class=\"token string\">'#175852'</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token operator\">></span>\n      <span class=\"token constant\">ROCKS</span>\n    <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>BackSide<span class=\"token operator\">></span>\n  <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>Flippy<span class=\"token operator\">></span>\n<span class=\"token punctuation\">}</span></code></pre></div>"}},{"node":{"frontmatter":{"title":"react-spaces将页面或容器分成多个可拖拽改变大小的空间","publish":true,"cover":"https://camo.githubusercontent.com/6a836cc790797537591d3be52a429053b3ef98bd/68747470733a2f2f7777772e616c6c616e6561676c652e636f6d2f72656163742d7370616365732f72656163742d7370616365732d64656d6f2e676966","showCover":true,"date":"2019-08-08","category":"javascript","url":"https://github.com/aeagle/react-spaces","author":"Allan Eagle","translator":"","tags":["react"],"priority":1},"html":"<p><a href=\"https://www.allaneagle.com/react-spaces/demo/#scrollable\">在线demo</a></p>"}},{"node":{"frontmatter":{"title":"riot.js-简单小巧自定义标签风格的框架","publish":true,"cover":"https://riot.js.org/img/logo/square.svg","showCover":true,"date":"2019-08-08","category":"frontend","url":"https://github.com/riot/riot","author":"编辑 Ka","translator":"","tags":["riot"],"priority":1},"html":"<ul>\n<li>体积小</li>\n<li>覆盖安卓，IOS，非常适合 H5</li>\n<li>自定义标签风格</li>\n<li>简单易用</li>\n<li><a href=\"https://riot.js.org/api/#slots\">支持 slot</a></li>\n</ul>\n<p><a href=\"https://plnkr.co/edit/?p=preview\">使用示例</a></p>\n<div class=\"gatsby-highlight\" data-language=\"html\"><pre class=\"language-html\"><code class=\"language-html\"><span class=\"token doctype\">&lt;!DOCTYPE html></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>html</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>head</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>title</span><span class=\"token punctuation\">></span></span>Riot Example: Timer<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>title</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>meta</span> <span class=\"token attr-name\">http-equiv</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>X-UA-Compatible<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">content</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>IE=edge<span class=\"token punctuation\">\"</span></span> <span class=\"token punctuation\">/></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>link</span> <span class=\"token attr-name\">rel</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>stylesheet<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">href</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>style.css<span class=\"token punctuation\">\"</span></span> <span class=\"token punctuation\">/></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>head</span><span class=\"token punctuation\">></span></span>\n\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>body</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>timer</span><span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>timer</span><span class=\"token punctuation\">></span></span>\n\n    <span class=\"token comment\">&lt;!-- riot tags --></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>timer.riot<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">type</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>riot<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\n    <span class=\"token comment\">&lt;!-- scripts we need --></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>https://cdn.jsdelivr.net/npm/riot@4/riot+compiler.min.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\n    <span class=\"token comment\">&lt;!-- mount this app --></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      riot<span class=\"token punctuation\">.</span><span class=\"token function\">compile</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">then</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        riot<span class=\"token punctuation\">.</span><span class=\"token function\">mount</span><span class=\"token punctuation\">(</span><span class=\"token string\">'timer'</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span> start<span class=\"token punctuation\">:</span> <span class=\"token number\">0</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 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>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>body</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>html</span><span class=\"token punctuation\">></span></span></code></pre></div>"}},{"node":{"frontmatter":{"title":"webpack-bundle-analyzer查看什么造成文件很大","publish":true,"cover":"https://cloud.githubusercontent.com/assets/302213/20628702/93f72404-b338-11e6-92d4-9a365550a701.gif","showCover":true,"date":"2019-08-08","category":"javascript","url":"https://github.com/webpack-contrib/webpack-bundle-analyzer","author":"webpack-contrib","translator":"","tags":["webpack"],"priority":2},"html":"<p>插件使用</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> BundleAnalyzerPlugin <span class=\"token operator\">=</span> <span class=\"token function\">require</span><span class=\"token punctuation\">(</span><span class=\"token string\">'webpack-bundle-analyzer'</span><span class=\"token punctuation\">)</span>\n  <span class=\"token punctuation\">.</span>BundleAnalyzerPlugin<span class=\"token punctuation\">;</span>\n\nmodule<span class=\"token punctuation\">.</span>exports <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n  plugins<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">[</span><span class=\"token keyword\">new</span> <span class=\"token class-name\">BundleAnalyzerPlugin</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 punctuation\">;</span></code></pre></div>"}},{"node":{"frontmatter":{"title":"www.pkgstats.com - npm包统计","publish":true,"cover":"","showCover":true,"date":"2019-08-08","category":"javascript","url":"https://www.pkgstats.com","author":"Ryan Hefner","translator":"","tags":["npm"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"取余与取模的区别","publish":true,"cover":"","showCover":true,"date":"2019-08-08","category":"python","url":"https://2ality.com/2019/08/remainder-vs-modulo.html","author":"Dr. Axel Rauschmayer 摘译 Ka","translator":"","tags":["math"],"priority":1},"html":"<div class=\"gatsby-highlight\" data-language=\"shell\"><pre class=\"language-shell\"><code class=\"language-shell\"><span class=\"token comment\"># 取余</span>\n<span class=\"token operator\">></span> 5 rem -3\n2\n<span class=\"token comment\"># 取模</span>\n<span class=\"token operator\">></span> 5 mod -3\n-1</code></pre></div>\n<p>简言之取余(remainder)相当于</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\">Math<span class=\"token punctuation\">.</span><span class=\"token function\">trunc</span><span class=\"token punctuation\">(</span><span class=\"token number\">5</span> <span class=\"token operator\">/</span> <span class=\"token operator\">-</span><span class=\"token number\">3</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<p>取模(modulo)相当于</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\">Math<span class=\"token punctuation\">.</span><span class=\"token function\">floor</span><span class=\"token punctuation\">(</span><span class=\"token number\">5</span> <span class=\"token operator\">/</span> <span class=\"token operator\">-</span><span class=\"token number\">3</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<p>在 javascript 里，%运算符是取余</p>\n<p>在 python 里，%运算符是取模</p>"}},{"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":"宁愿打官司也不想改网站-美国比萨店请求最高法关闭关于残疾人可访问性的起诉","publish":true,"cover":"https://cdn.vox-cdn.com/thumbor/WClhWrT0Jbbuh-SMXmZwnUwGJiw=/0x0:4000x2499/920x613/filters:focal(1680x930:2320x1570):format(webp)/cdn.vox-cdn.com/uploads/chorus_image/image/64898323/921740544.jpg.0.jpg","showCover":true,"date":"2019-08-08","category":"other","url":"https://www.theverge.com/2019/8/1/20750913/dominos-pizza-website-accessible-blind-supreme-court-lawsuit","author":"Nick Statt, @nickstatt","translator":"","tags":["ada"],"priority":2},"html":"<p>如今美国ADA相关的诉讼正是律师大赚的时候。</p>\n<p>美国最大披萨外卖商Domino却特立独行，要求最高法关闭针对其网站不达标ADA的诉讼。</p>\n<p>其解释说：</p>\n<ul>\n<li>其网站的特性（Pizza Tracker）很难转换为文字</li>\n<li>改进将花费巨大（比打官司都贵？）</li>\n<li>目前标准也不明确，不知道怎么算达标</li>\n</ul>"}},{"node":{"frontmatter":{"title":"开发者需要注意的firefox-68新特性","publish":true,"cover":"","showCover":true,"date":"2019-08-08","category":"frontend","url":"https://hacks.mozilla.org/2019/07/new-css-features-in-firefox-68/","author":"Rachel Andrew 摘译 Ka","translator":"","tags":["html"],"priority":1},"html":"<h2 id=\"支持css-scroll-snapping特性\"><a href=\"#%E6%94%AF%E6%8C%81css-scroll-snapping%E7%89%B9%E6%80%A7\" 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>支持<a href=\"https://developer.mozilla.org/zh-CN/docs/Web/CSS/scroll-snap-type\">Css Scroll Snapping特性</a></h2>\n<h2 id=\"支持marker\"><a href=\"#%E6%94%AF%E6%8C%81marker\" 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>支持<a href=\"https://developer.mozilla.org/zh-CN/docs/Web/CSS/::marker\">::marker</a></h2>\n<h2 id=\"开发者工具-打印样式按钮\"><a href=\"#%E5%BC%80%E5%8F%91%E8%80%85%E5%B7%A5%E5%85%B7-%E6%89%93%E5%8D%B0%E6%A0%B7%E5%BC%8F%E6%8C%89%E9%92%AE\" 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<p><img src=\"https://hacks.mozilla.org/files/2019/07/hacksblog-printstyles.png\"></p>\n<h2 id=\"错误的样式依然会在样式表里显示以便觉察\"><a href=\"#%E9%94%99%E8%AF%AF%E7%9A%84%E6%A0%B7%E5%BC%8F%E4%BE%9D%E7%84%B6%E4%BC%9A%E5%9C%A8%E6%A0%B7%E5%BC%8F%E8%A1%A8%E9%87%8C%E6%98%BE%E7%A4%BA%E4%BB%A5%E4%BE%BF%E8%A7%89%E5%AF%9F\" 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<p><img src=\"https://hacks.mozilla.org/files/2019/07/hacksblog-invalid.png\"></p>"}},{"node":{"frontmatter":{"title":"异步生成器和异步迭代器的使用场景","publish":true,"cover":"","showCover":true,"date":"2019-08-09","category":"nodejs","url":"https://blog.kazge.com/nodejs/2019/08/08/zh-async-generator-and-async-iterator/","author":"Ka","translator":"","tags":["ES2018"],"priority":1},"html":""}},{"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://camo.githubusercontent.com/86761162d5909f69b299be987b8c2a170385b6cf/68747470733a2f2f692e696d6775722e636f6d2f763361523045372e706e67","showCover":true,"date":"2019-08-08","category":"nodejs","url":"https://github.com/ian13456/mc.js","author":"Ian Huang","translator":"","tags":["npm"],"priority":2},"html":"<p>技术栈为ThreeJS, ReactJS, GraphQL, and NodeJS.</p>"}}]}}