Deploying to gh-pages from @ ZiuChen/ZiuChen.github.io@6338a5ed7f 🚀

This commit is contained in:
ZiuChen
2023-03-08 06:06:25 +00:00
parent 124a3325e2
commit 5012d93d3e
104 changed files with 206 additions and 182 deletions

View File

@@ -8,7 +8,7 @@
<link rel="preload stylesheet" href="/assets/style.60c127af.css" as="style">
<link rel="modulepreload" href="/assets/chunks/VPAlgoliaSearchBox.13f0127a.js">
<link rel="modulepreload" href="/assets/app.696c3ff6.js">
<link rel="modulepreload" href="/assets/article_深入JavaScript数据类型.md.792900f0.lean.js">
<link rel="modulepreload" href="/assets/article_深入JavaScript数据类型.md.52dbf94b.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-03-05T16:04:39.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\":\"8cbaa4cd\",\"article_【2023】青训营 - 前端练习题汇总解析.md\":\"51535097\",\"article_一文读懂函数中this指向问题.md\":\"2556308f\",\"article_一文读懂事件冒泡与事件捕获.md\":\"9c097c68\",\"article_【快手】深入理解前端面试题.md\":\"13dbff09\",\"article_一文读懂伪类与伪元素.md\":\"fdde70e9\",\"article_【用友金融】前端面试题总结.md\":\"d33cd582\",\"article_彻底搞懂对象的数据属性描述符、存储属性描述符.md\":\"51a9457a\",\"article_浅析defineproperty与proxy实现的双向绑定.md\":\"b5736378\",\"article_深入javascript数据类型.md\":\"792900f0\",\"article_深入理解浏览器运行原理.md\":\"5636863b\",\"index.md\":\"f0ac61dc\",\"note_front-end engineering.md\":\"17f33f44\",\"project_clipboardmanager_guide_index.md\":\"bcca852f\",\"project_clipboardmanager_index.md\":\"e867dee5\",\"project_smartwordbreak_log_index.md\":\"f55f78bb\",\"project_clipboardmanager_vip_index.md\":\"c024fca4\",\"project_clipboardmanager_log_index.md\":\"d735824f\",\"project_smartwordbreak_index.md\":\"bbe2bf16\",\"project_markdown_index.md\":\"aef08232\",\"project_smartwordbreak_statement_index.md\":\"4c3c3911\",\"works_contribution.md\":\"fa65d9b0\",\"works_opensource.md\":\"4d677f17\",\"article_深入理解浏览器缓存机制.md\":\"75236d66\",\"self_index.md\":\"d6d6862a\",\"project_clipboardmanager_statement_index.md\":\"0295553f\",\"article_深入vue3源码看看vue.use后究竟发生了什么.md\":\"9d0c8eea\",\"article_从0实现一个年度报告.md\":\"be0298aa\",\"article_深入理解proxy与reflect.md\":\"59992e3c\",\"note_css.md\":\"41994b63\",\"note_ssr.md\":\"fd7976e0\",\"note_javascript.md\":\"21b87d90\",\"note_javascriptenhanced.md\":\"c369c42d\"}")</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-03-08T06:05:01.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_【2023】青训营 - 前端练习题汇总解析.md\":\"c7b1dee7\",\"article_【字节跳动】前端面试题总结.md\":\"9e74b480\",\"article_【快手】深入理解前端面试题.md\":\"88104d20\",\"article_【用友金融】前端面试题总结.md\":\"8dc0990c\",\"article_一文读懂事件冒泡与事件捕获.md\":\"155f5eaf\",\"article_一文读懂伪类与伪元素.md\":\"b3c4c857\",\"article_一文读懂函数中this指向问题.md\":\"1848baef\",\"article_从0实现一个年度报告.md\":\"5e80f506\",\"article_彻底搞懂对象的数据属性描述符、存储属性描述符.md\":\"f521ae1a\",\"article_浅析defineproperty与proxy实现的双向绑定.md\":\"c7ae1acc\",\"article_深入javascript数据类型.md\":\"52dbf94b\",\"article_深入理解浏览器缓存机制.md\":\"a4c576ba\",\"article_深入理解浏览器运行原理.md\":\"6f0ca816\",\"index.md\":\"0a37fabb\",\"note_javascript.md\":\"3d25b392\",\"note_ssr.md\":\"32c5270f\",\"project_clipboardmanager_guide_index.md\":\"2ba62186\",\"project_clipboardmanager_index.md\":\"52edfd88\",\"project_clipboardmanager_log_index.md\":\"0ef49615\",\"project_clipboardmanager_statement_index.md\":\"3ce04cff\",\"project_clipboardmanager_vip_index.md\":\"867d92a6\",\"project_markdown_index.md\":\"1bd19432\",\"project_markdown_shortcut_index.md\":\"ddcbe034\",\"project_smartwordbreak_log_index.md\":\"58992cd8\",\"project_smartwordbreak_statement_index.md\":\"7e2e799d\",\"self_index.md\":\"c479ec60\",\"works_contribution.md\":\"f47bebce\",\"works_opensource.md\":\"5f5850aa\",\"project_smartwordbreak_index.md\":\"b9c9e8e7\",\"article_深入vue3源码看看vue.use后究竟发生了什么.md\":\"72b8b061\",\"note_front-end engineering.md\":\"34c146a3\",\"article_深入理解proxy与reflect.md\":\"a0a84d60\",\"note_css.md\":\"d34d091d\",\"note_javascriptenhanced.md\":\"f23abf78\"}")</script>
<script type="module" async src="/assets/app.696c3ff6.js"></script>
</body>