Deploying to gh-pages from @ ZiuChen/ZiuChen.github.io@938202cb6d 🚀

This commit is contained in:
ZiuChen
2023-04-14 16:40:03 +00:00
parent 66a4ae555a
commit 1a4abf4fe0
110 changed files with 462 additions and 192 deletions

View File

@@ -8,7 +8,7 @@
<link rel="preload stylesheet" href="/assets/style.edafdec9.css" as="style">
<link rel="modulepreload" href="/assets/chunks/VPAlgoliaSearchBox.107ab7ad.js">
<link rel="modulepreload" href="/assets/app.ab8d0b9f.js">
<link rel="modulepreload" href="/assets/article_深入JavaScript数据类型.md.04cef1ae.lean.js">
<link rel="modulepreload" href="/assets/article_深入JavaScript数据类型.md.dcbddda8.lean.js">
<link rel="icon" href="/logo.png">
<script id="check-dark-light">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -52,8 +52,8 @@
<span class="line"><span style="color:#89DDFF;">}</span></span>
<span class="line"></span>
<span class="line"><span style="color:#A6ACCD;">console</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">log</span><span style="color:#A6ACCD;">(</span><span style="color:#82AAFF;">classof</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{}</span><span style="color:#A6ACCD;">)) </span><span style="color:#676E95;font-style:italic;">// Object</span></span>
<span class="line"></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br></div></div><h3 id="核心原理" tabindex="-1">核心原理 <a class="header-anchor" href="#核心原理" aria-hidden="true">#</a></h3><p><a href="https://juejin.cn/post/6844903477940846600" target="_blank" rel="noreferrer">深入Object.prototype.toString</a></p><p>参考ECMA6规范文档<a href="https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.prototype.tostring" target="_blank" rel="noreferrer">Object.prototype.toString()</a></p><h4 id="es5标准下-object-prototype-tostring-执行原理" tabindex="-1">ES5标准下 <code>Object.prototype.toString</code> 执行原理 <a class="header-anchor" href="#es5标准下-object-prototype-tostring-执行原理" aria-hidden="true">#</a></h4><ul><li>如果 <code>this</code><code>undefined</code><ul><li>返回 <code>[object Undefined]</code></li></ul></li><li>如果 <code>this</code><code>null </code><ul><li>返回 <code>[object Null]</code></li></ul></li><li><code>O</code> 为以 <code>this</code> 作为参数调用 <code>ToObject</code> 的结果</li><li><code>class</code><code>O</code> 的内部属性 <code>[[Class]]</code> 的值</li><li>返回三个字符串 <code>&quot;[object&quot;</code> <code>class</code> 以及 <code>&quot;]&quot;</code> 拼接而成的字符串。</li></ul><h4 id="es6标准下-object-prototype-tostring-执行原理" tabindex="-1">ES6标准下 <code>Object.prototype.toString</code> 执行原理 <a class="header-anchor" href="#es6标准下-object-prototype-tostring-执行原理" aria-hidden="true">#</a></h4><p><code>Object.prototype.toString()</code>被调用时,会进行如下步骤:</p><p><img src="/assets/Object.prototype.toString.70e8308c.png" alt="Object.prototype.toString()"></p><p>在ES6里之前的内部属性 <code>[[Class]]</code> 不再使用,取而代之的是一系列的 internal slot</p></div></div></main><!--[--><!--]--><footer class="VPDocFooter" data-v-30dabfe4 data-v-cc0f9778><div class="edit-info" data-v-cc0f9778><div class="edit-link" data-v-cc0f9778><a class="VPLink link edit-link-button" href="https://github.com/ZiuChen/ZiuChen.github.io/edit/main/docs/article/深入JavaScript数据类型.md" target="_blank" rel="noreferrer" data-v-cc0f9778 data-v-8dd200cc><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" data-v-cc0f9778><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> Edit this page on GitHub<!--]--><!----></a></div><div class="last-updated" data-v-cc0f9778><p class="VPLastUpdated" data-v-cc0f9778 data-v-de6a4e1f>Updated Date: <time datetime="2023-04-12T04:33:56.000Z" data-v-de6a4e1f></time></p></div></div><div class="prev-next" data-v-cc0f9778><div class="pager" data-v-cc0f9778><a class="pager-link prev" href="/article/%E6%B5%85%E6%9E%90defineProperty%E4%B8%8EProxy%E5%AE%9E%E7%8E%B0%E7%9A%84%E5%8F%8C%E5%90%91%E7%BB%91%E5%AE%9A.html" data-v-cc0f9778><span class="desc" data-v-cc0f9778>Previous page</span><span class="title" data-v-cc0f9778>浅析defineProperty与Proxy实现的双向绑定</span></a></div><div class="has-prev pager" data-v-cc0f9778><a class="pager-link next" href="/article/%E6%B7%B1%E5%85%A5Vue3%E6%BA%90%E7%A0%81%EF%BC%8C%E7%9C%8B%E7%9C%8BVue.use%E5%90%8E%E7%A9%B6%E7%AB%9F%E5%8F%91%E7%94%9F%E4%BA%86%E4%BB%80%E4%B9%88%EF%BC%9F.html" data-v-cc0f9778><span class="desc" data-v-cc0f9778>Next page</span><span class="title" data-v-cc0f9778>深入Vue3源码看看Vue.use后究竟发生了什么</span></a></div></div></footer><!--[--><!--]--></div></div></div></div></div><footer class="VPFooter has-sidebar" data-v-3af881ed data-v-8b655284><div class="container" data-v-8b655284><p class="message" data-v-8b655284>Released under the MIT License.</p><p class="copyright" data-v-8b655284>Copyright © 2019-present Ziu Chen</p></div></footer><!--[--><!--]--></div></div>
<script>__VP_HASH_MAP__ = JSON.parse("{\"article_【字节跳动】前端面试题总结.md\":\"2f59b10a\",\"article_【2023】青训营 - 前端练习题汇总解析.md\":\"9cc1c756\",\"article_【快手】深入理解前端面试题.md\":\"5ba13f6e\",\"article_【用友金融】前端面试题总结.md\":\"6b88ba51\",\"article_一文读懂事件冒泡与事件捕获.md\":\"d079626e\",\"article_深入理解proxy与reflect.md\":\"130260d0\",\"article_一文读懂伪类与伪元素.md\":\"05f94b2f\",\"article_彻底搞懂对象的数据属性描述符、存储属性描述符.md\":\"1e34d909\",\"article_从0实现一个年度报告.md\":\"2916b0b7\",\"article_深入理解浏览器缓存机制.md\":\"93c602e7\",\"article_深入理解浏览器运行原理.md\":\"df749479\",\"article_深入vue3源码看看vue.use后究竟发生了什么.md\":\"7675553c\",\"index.md\":\"e280b140\",\"note_front-end engineering.md\":\"a0520d36\",\"note_javascript.md\":\"566155dc\",\"article_一文读懂函数中this指向问题.md\":\"e7647b3c\",\"article_浅析defineproperty与proxy实现的双向绑定.md\":\"6a4c39af\",\"article_深入javascript数据类型.md\":\"04cef1ae\",\"note_css.md\":\"3cb37354\",\"project_clipboardmanager_index.md\":\"b7d80b90\",\"project_clipboardmanager_log_index.md\":\"64442858\",\"project_smartwordbreak_log_index.md\":\"b62bc4d3\",\"project_clipboardmanager_statement_index.md\":\"cd56c4e7\",\"works_contribution.md\":\"ea9932f6\",\"project_markdown_index.md\":\"169e5462\",\"project_smartwordbreak_index.md\":\"e19a84fb\",\"self_index.md\":\"cb016208\",\"project_smartwordbreak_statement_index.md\":\"b15fb0e3\",\"project_markdown_shortcut_index.md\":\"c32f00fa\",\"project_markdown_log_index.md\":\"fa880a29\",\"project_clipboardmanager_guide_index.md\":\"0a98e9b1\",\"note_ssr.md\":\"ee9df2bb\",\"works_opensource.md\":\"2c78afab\",\"project_clipboardmanager_vip_index.md\":\"75960c2d\",\"note_javascriptenhanced.md\":\"c6f06cc2\"}")</script>
<span class="line"></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br></div></div><h3 id="核心原理" tabindex="-1">核心原理 <a class="header-anchor" href="#核心原理" aria-hidden="true">#</a></h3><p><a href="https://juejin.cn/post/6844903477940846600" target="_blank" rel="noreferrer">深入Object.prototype.toString</a></p><p>参考ECMA6规范文档<a href="https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.prototype.tostring" target="_blank" rel="noreferrer">Object.prototype.toString()</a></p><h4 id="es5标准下-object-prototype-tostring-执行原理" tabindex="-1">ES5标准下 <code>Object.prototype.toString</code> 执行原理 <a class="header-anchor" href="#es5标准下-object-prototype-tostring-执行原理" aria-hidden="true">#</a></h4><ul><li>如果 <code>this</code><code>undefined</code><ul><li>返回 <code>[object Undefined]</code></li></ul></li><li>如果 <code>this</code><code>null </code><ul><li>返回 <code>[object Null]</code></li></ul></li><li><code>O</code> 为以 <code>this</code> 作为参数调用 <code>ToObject</code> 的结果</li><li><code>class</code><code>O</code> 的内部属性 <code>[[Class]]</code> 的值</li><li>返回三个字符串 <code>&quot;[object&quot;</code> <code>class</code> 以及 <code>&quot;]&quot;</code> 拼接而成的字符串。</li></ul><h4 id="es6标准下-object-prototype-tostring-执行原理" tabindex="-1">ES6标准下 <code>Object.prototype.toString</code> 执行原理 <a class="header-anchor" href="#es6标准下-object-prototype-tostring-执行原理" aria-hidden="true">#</a></h4><p><code>Object.prototype.toString()</code>被调用时,会进行如下步骤:</p><p><img src="/assets/Object.prototype.toString.70e8308c.png" alt="Object.prototype.toString()"></p><p>在ES6里之前的内部属性 <code>[[Class]]</code> 不再使用,取而代之的是一系列的 internal slot</p></div></div></main><!--[--><!--]--><footer class="VPDocFooter" data-v-30dabfe4 data-v-cc0f9778><div class="edit-info" data-v-cc0f9778><div class="edit-link" data-v-cc0f9778><a class="VPLink link edit-link-button" href="https://github.com/ZiuChen/ZiuChen.github.io/edit/main/docs/article/深入JavaScript数据类型.md" target="_blank" rel="noreferrer" data-v-cc0f9778 data-v-8dd200cc><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" data-v-cc0f9778><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> Edit this page on GitHub<!--]--><!----></a></div><div class="last-updated" data-v-cc0f9778><p class="VPLastUpdated" data-v-cc0f9778 data-v-de6a4e1f>Updated Date: <time datetime="2023-04-14T16:38:57.000Z" data-v-de6a4e1f></time></p></div></div><div class="prev-next" data-v-cc0f9778><div class="pager" data-v-cc0f9778><a class="pager-link prev" href="/article/%E6%B5%85%E6%9E%90defineProperty%E4%B8%8EProxy%E5%AE%9E%E7%8E%B0%E7%9A%84%E5%8F%8C%E5%90%91%E7%BB%91%E5%AE%9A.html" data-v-cc0f9778><span class="desc" data-v-cc0f9778>Previous page</span><span class="title" data-v-cc0f9778>浅析defineProperty与Proxy实现的双向绑定</span></a></div><div class="has-prev pager" data-v-cc0f9778><a class="pager-link next" href="/article/%E6%B7%B1%E5%85%A5Vue3%E6%BA%90%E7%A0%81%EF%BC%8C%E7%9C%8B%E7%9C%8BVue.use%E5%90%8E%E7%A9%B6%E7%AB%9F%E5%8F%91%E7%94%9F%E4%BA%86%E4%BB%80%E4%B9%88%EF%BC%9F.html" data-v-cc0f9778><span class="desc" data-v-cc0f9778>Next page</span><span class="title" data-v-cc0f9778>深入Vue3源码看看Vue.use后究竟发生了什么</span></a></div></div></footer><!--[--><!--]--></div></div></div></div></div><footer class="VPFooter has-sidebar" data-v-3af881ed data-v-8b655284><div class="container" data-v-8b655284><p class="message" data-v-8b655284>Released under the MIT License.</p><p class="copyright" data-v-8b655284>Copyright © 2019-present Ziu Chen</p></div></footer><!--[--><!--]--></div></div>
<script>__VP_HASH_MAP__ = JSON.parse("{\"article_【字节跳动】前端面试题总结.md\":\"3dfdab7c\",\"article_【2023】青训营 - 前端练习题汇总解析.md\":\"d16c49f7\",\"note_react.md\":\"37738659\",\"note_ssr.md\":\"2a6f7491\",\"article_【快手】深入理解前端面试题.md\":\"a17c91fe\",\"article_【用友金融】前端面试题总结.md\":\"7547802c\",\"article_一文读懂事件冒泡与事件捕获.md\":\"5137c93b\",\"article_一文读懂伪类与伪元素.md\":\"3caf47f7\",\"article_从0实现一个年度报告.md\":\"20b01bcf\",\"article_彻底搞懂对象的数据属性描述符、存储属性描述符.md\":\"16906c64\",\"article_浅析defineproperty与proxy实现的双向绑定.md\":\"5f5050bc\",\"article_深入javascript数据类型.md\":\"dcbddda8\",\"article_深入vue3源码看看vue.use后究竟发生了什么.md\":\"c3770229\",\"article_深入理解proxy与reflect.md\":\"58f72fb0\",\"article_深入理解浏览器缓存机制.md\":\"2f34ed14\",\"article_深入理解浏览器运行原理.md\":\"6d858ed2\",\"index.md\":\"1d9edc13\",\"note_css.md\":\"c02bd69e\",\"note_front-end engineering.md\":\"4e557ab2\",\"note_javascript.md\":\"c75739a0\",\"note_javascriptenhanced.md\":\"15a5ada8\",\"article_一文读懂函数中this指向问题.md\":\"7faa8a77\",\"project_clipboardmanager_index.md\":\"47c398e2\",\"project_clipboardmanager_log_index.md\":\"160bbac9\",\"project_clipboardmanager_statement_index.md\":\"de8d78b9\",\"project_clipboardmanager_vip_index.md\":\"65594262\",\"project_markdown_index.md\":\"e81bc18d\",\"project_markdown_log_index.md\":\"a6d3404e\",\"project_markdown_shortcut_index.md\":\"27d790ae\",\"project_smartwordbreak_index.md\":\"446fdae8\",\"project_smartwordbreak_log_index.md\":\"bccaf1f0\",\"project_smartwordbreak_statement_index.md\":\"78d0e16d\",\"self_index.md\":\"6b8d0d4e\",\"works_contribution.md\":\"868fc57c\",\"project_clipboardmanager_guide_index.md\":\"944e67a3\",\"works_opensource.md\":\"8d0e487f\"}")</script>
<script type="module" async src="/assets/app.ab8d0b9f.js"></script>
</body>