mirror of
https://github.com/ZiuChen/ZiuChen.github.io.git
synced 2025-12-18 08:54:16 +08:00
Deploying to gh-pages from @ ZiuChen/ZiuChen.github.io@39fd2a7bb4 🚀
This commit is contained in:
@@ -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.d19814ba.lean.js">
|
||||
<link rel="modulepreload" href="/assets/article_深入JavaScript数据类型.md.ba9615ca.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>"[object"</code> <code>class</code> 以及 <code>"]"</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-16T16:00:53.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\":\"992cbe1e\",\"article_【字节跳动】前端面试题总结.md\":\"28387dc1\",\"article_一文读懂事件冒泡与事件捕获.md\":\"d634b0cc\",\"article_一文读懂伪类与伪元素.md\":\"075041c2\",\"article_【用友金融】前端面试题总结.md\":\"dd5e8bb8\",\"article_一文读懂函数中this指向问题.md\":\"cc3242ec\",\"article_从0实现一个年度报告.md\":\"d13e2c66\",\"article_彻底搞懂对象的数据属性描述符、存储属性描述符.md\":\"e6aa2df6\",\"article_浅析defineproperty与proxy实现的双向绑定.md\":\"84781987\",\"article_深入理解浏览器运行原理.md\":\"bcc4ee68\",\"index.md\":\"0054fdf5\",\"note_front-end engineering.md\":\"f6767e7e\",\"note_javascript.md\":\"b277622a\",\"note_react.md\":\"2cc72154\",\"note_ssr.md\":\"74ae6370\",\"project_clipboardmanager_log_index.md\":\"1ff11fab\",\"project_clipboardmanager_statement_index.md\":\"d9b4ca8b\",\"project_clipboardmanager_vip_index.md\":\"86a642e1\",\"project_markdown_index.md\":\"286be53a\",\"project_markdown_log_index.md\":\"8d5bf575\",\"project_markdown_shortcut_index.md\":\"5e892dc2\",\"project_smartwordbreak_index.md\":\"02b039ba\",\"project_smartwordbreak_log_index.md\":\"6d311e2c\",\"project_smartwordbreak_statement_index.md\":\"db5c722b\",\"self_index.md\":\"833d0537\",\"works_contribution.md\":\"c3b4be35\",\"works_opensource.md\":\"4eacd201\",\"project_clipboardmanager_guide_index.md\":\"a38c7111\",\"article_深入理解proxy与reflect.md\":\"6e07005a\",\"article_深入理解浏览器缓存机制.md\":\"6e4255bd\",\"article_深入javascript数据类型.md\":\"d19814ba\",\"article_深入vue3源码,看看vue.use后究竟发生了什么?.md\":\"653d621e\",\"note_css.md\":\"a33f8f13\",\"article_【快手】深入理解前端面试题.md\":\"c92d219c\",\"project_clipboardmanager_index.md\":\"0bd2ff92\",\"note_javascriptenhanced.md\":\"de389674\"}")</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>"[object"</code> <code>class</code> 以及 <code>"]"</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-17T04:39:19.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("{\"project_clipboardmanager_index.md\":\"b114e887\",\"project_clipboardmanager_log_index.md\":\"dfa3a0a0\",\"project_clipboardmanager_statement_index.md\":\"042c09b5\",\"project_clipboardmanager_vip_index.md\":\"ac57a810\",\"project_markdown_index.md\":\"962f24ad\",\"project_markdown_log_index.md\":\"0a9099fd\",\"project_markdown_shortcut_index.md\":\"4a82e756\",\"project_smartwordbreak_index.md\":\"031fca6c\",\"project_smartwordbreak_log_index.md\":\"9a0f5e77\",\"project_smartwordbreak_statement_index.md\":\"5f2cc014\",\"self_index.md\":\"b7876723\",\"works_contribution.md\":\"684e9218\",\"works_opensource.md\":\"55f6b500\",\"note_javascript.md\":\"b9212d28\",\"article_【2023】青训营 - 前端练习题汇总解析.md\":\"4cd8991e\",\"article_【字节跳动】前端面试题总结.md\":\"e8edbefb\",\"article_【快手】深入理解前端面试题.md\":\"d2af855e\",\"article_【用友金融】前端面试题总结.md\":\"b76ce3fc\",\"article_一文读懂事件冒泡与事件捕获.md\":\"03c23783\",\"article_从0实现一个年度报告.md\":\"9dca0596\",\"article_彻底搞懂对象的数据属性描述符、存储属性描述符.md\":\"9b176b2a\",\"article_浅析defineproperty与proxy实现的双向绑定.md\":\"e08ddd5c\",\"article_深入理解proxy与reflect.md\":\"0209a1e3\",\"article_深入理解浏览器缓存机制.md\":\"8d5de362\",\"article_深入理解浏览器运行原理.md\":\"9380286d\",\"index.md\":\"ad735af1\",\"article_深入vue3源码,看看vue.use后究竟发生了什么?.md\":\"2aeef25a\",\"note_front-end engineering.md\":\"3c2274c5\",\"note_react.md\":\"7e023574\",\"article_深入javascript数据类型.md\":\"ba9615ca\",\"note_css.md\":\"5332045b\",\"note_javascriptenhanced.md\":\"addd568f\",\"article_一文读懂伪类与伪元素.md\":\"aefe5737\",\"article_一文读懂函数中this指向问题.md\":\"9e471304\",\"note_ssr.md\":\"a2182d15\",\"project_clipboardmanager_guide_index.md\":\"0ec1e04e\"}")</script>
|
||||
<script type="module" async src="/assets/app.ab8d0b9f.js"></script>
|
||||
|
||||
</body>
|
||||
|
||||
Reference in New Issue
Block a user