<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[圆圆的 JavaScript 博客]]></title><description><![CDATA[公众号「前端圆圆」，求上则居中，求中则居下，求下则不入流。]]></description><link>https://blog.youkuaiyun.com/weixin_45844049</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; weixin_45844049]]></copyright><item><title><![CDATA[为什么说 bind 的实现非常考验对原型链的理解？]]></title><link>https://blog.youkuaiyun.com/weixin_45844049/article/details/127497469</link><guid>https://blog.youkuaiyun.com/weixin_45844049/article/details/127497469</guid><author>weixin_45844049</author><pubDate>Mon, 24 Oct 2022 17:56:32 +0800</pubDate><description><![CDATA[bind 的实现其实非常考验对原型链的理解。bind 和 apply，call 是 JS 修改 this 指向的三把利器 🔱。但看似简单的内容，实则包含了 JS 的两大核心内容：原型链和构造函数 (new) 。这篇文章分为两部分：一部分讲如何实现一个基础版本的 bind 方法，带大家做好热身运动；另一部分进入主题，详细讲解如何通过原型链来实现一个让人眼前一亮的 bind 方法。]]></description><category></category></item><item><title><![CDATA[JS 内存泄漏与垃圾回收机制]]></title><link>https://blog.youkuaiyun.com/weixin_45844049/article/details/123784508</link><guid>https://blog.youkuaiyun.com/weixin_45844049/article/details/123784508</guid><author>weixin_45844049</author><pubDate>Wed, 06 Apr 2022 21:08:59 +0800</pubDate><description><![CDATA[JavaScript 是在创建变量（对象，字符串等）时自动进行了分配内存，并且在不使用它们时“自动”释放。 释放的过程称为垃圾回收。这个“自动”是混乱的根源，并让 JavaScript 开发者错误的感觉他们可以不关心内存管理，进而引发内存泄漏。]]></description><category></category></item><item><title><![CDATA[Git The requested URL returned error: 403，Token authentication requirements for Git operations]]></title><link>https://blog.youkuaiyun.com/weixin_45844049/article/details/123733065</link><guid>https://blog.youkuaiyun.com/weixin_45844049/article/details/123733065</guid><author>weixin_45844049</author><pubDate>Fri, 25 Mar 2022 14:45:00 +0800</pubDate><description><![CDATA[使用 git push 代码的时候报错：`The requested URL returned error: 403`，表示没有权限来 push 相关代码，可能是 token 过期失效，或者是没有配置 token 导致身份验证失败]]></description><category></category></item><item><title><![CDATA[详谈前端模块化这十四年的发展史：CommonJS、AMD、CMD、ES6]]></title><link>https://blog.youkuaiyun.com/weixin_45844049/article/details/122612833</link><guid>https://blog.youkuaiyun.com/weixin_45844049/article/details/122612833</guid><author>weixin_45844049</author><pubDate>Thu, 24 Feb 2022 21:52:14 +0800</pubDate><description><![CDATA[十年之前，模块化还只是使用「闭包」简单的实现一个命名空间。转眼间模块化已经发展了有十余年了，不同的工具和轮子层出不穷，下面是最各大工具或框架的诞生时间]]></description><category></category></item><item><title><![CDATA[JS 异步编程的 5 种解决方案]]></title><link>https://blog.youkuaiyun.com/weixin_45844049/article/details/122085964</link><guid>https://blog.youkuaiyun.com/weixin_45844049/article/details/122085964</guid><author>weixin_45844049</author><pubDate>Wed, 23 Feb 2022 21:04:02 +0800</pubDate><description><![CDATA[异步为什么很重要？如何使用异步来有效处理潜在的阻塞操作？我们知道 JS 语言的执行环境是"单线程"，所谓"单线程"，就是指一次只能完成一件任务，这种模式的好处是实现起来比较简单，执行环境相对单纯；坏处是只要有一个任务耗时很长，后面的任务都必须排队等着，会拖延整个程序的执行。为了解决这个问题，Javascript语言将任务的执行模式分成两种：同步（Synchronous）和异步（Asynchronous）。...]]></description><category></category></item><item><title><![CDATA[JS 异步编程终极解决方案 async/await 的使用手册]]></title><link>https://blog.youkuaiyun.com/weixin_45844049/article/details/122566770</link><guid>https://blog.youkuaiyun.com/weixin_45844049/article/details/122566770</guid><author>weixin_45844049</author><pubDate>Wed, 19 Jan 2022 23:57:42 +0800</pubDate><description><![CDATA[ES8 提出了 JS 异步编程终极解决方案 async/await 。No more callback hell。使用 关键字 async 来表示，在函数内部使用 await 来表示异步。简单来说，它们是基于promises的语法糖，使异步代码更易于编写和阅读。通过使用它们，异步代码看起来更像是老式同步代码，因此它们非常值得学习。]]></description><category></category></item><item><title><![CDATA[ECMAScript 的发展历史及各版本名称介绍]]></title><link>https://blog.youkuaiyun.com/weixin_45844049/article/details/122566816</link><guid>https://blog.youkuaiyun.com/weixin_45844049/article/details/122566816</guid><author>weixin_45844049</author><pubDate>Tue, 18 Jan 2022 19:44:33 +0800</pubDate><description><![CDATA[JavaScript 到底什么是 ES6、ES7、ES8、ES 2017、ECMAScript?]]></description><category></category></item><item><title><![CDATA[从零开始带你手写一个“发布-订阅者模式“ ，保姆级教学]]></title><link>https://blog.youkuaiyun.com/weixin_45844049/article/details/122259675</link><guid>https://blog.youkuaiyun.com/weixin_45844049/article/details/122259675</guid><author>weixin_45844049</author><pubDate>Thu, 13 Jan 2022 18:17:44 +0800</pubDate><description><![CDATA[发布订阅者模式想必大家都不陌生，是前端不可不掌握的设计模式，搞懂四个基本的核心内容就能掌握并实现这个模式！]]></description><category></category></item><item><title><![CDATA[看了就会，手写 Promise 全部 API 教程，包括处于 TC39 第四阶段草案的 Promise.any()]]></title><link>https://blog.youkuaiyun.com/weixin_45844049/article/details/121579448</link><guid>https://blog.youkuaiyun.com/weixin_45844049/article/details/121579448</guid><author>weixin_45844049</author><pubDate>Tue, 21 Dec 2021 17:42:35 +0800</pubDate><description><![CDATA[根据规范实现了 Promise  ES6+ 的全部 API，手写实现了 then 方法以外的两个实例方法以及目前 Promise 规范的全部六个静态方法。]]></description><category></category></item><item><title><![CDATA[手把手一行一行代码教你“手写Promise“，完美通过 Promises/A+ 官方872个测试用例]]></title><link>https://blog.youkuaiyun.com/weixin_45844049/article/details/120886937</link><guid>https://blog.youkuaiyun.com/weixin_45844049/article/details/120886937</guid><author>weixin_45844049</author><pubDate>Mon, 20 Dec 2021 20:19:51 +0800</pubDate><description><![CDATA[保姆级教程，看完还不懂的私聊我亲自教！]]></description><category></category></item><item><title><![CDATA[ES6新特性 Class 类的全方面理解]]></title><link>https://blog.youkuaiyun.com/weixin_45844049/article/details/120870122</link><guid>https://blog.youkuaiyun.com/weixin_45844049/article/details/120870122</guid><author>weixin_45844049</author><pubDate>Wed, 20 Oct 2021 17:02:41 +0800</pubDate><description><![CDATA[javascript语言只有对象，没有类的概念。跟传统的面向对象语言（比如 C++ 和 Java）差异很大，非常容易让人困惑~ES6 提供了更接近传统语言的写法，引入了 Class（类）这个概念！本文就带你全方面理解class~]]></description><category></category></item><item><title><![CDATA[详解宏任务、微任务与事件循环 Event Loop]]></title><link>https://blog.youkuaiyun.com/weixin_45844049/article/details/120692140</link><guid>https://blog.youkuaiyun.com/weixin_45844049/article/details/120692140</guid><author>weixin_45844049</author><pubDate>Tue, 19 Oct 2021 17:35:21 +0800</pubDate><description><![CDATA[事件循环 Event Loop，是指浏览器或Node的一种解决javaScript单线程运行时“非阻塞”的一种机制，也就是我们经常使用异步的原理。本文会带你吃透“事件循环”，掌握底层原理，轻松应对JavaScript执行机制问题~]]></description><category></category></item><item><title><![CDATA[通俗易懂的Promise知识点总结，检验一下你是否真的完全掌握了promise？]]></title><link>https://blog.youkuaiyun.com/weixin_45844049/article/details/120767122</link><guid>https://blog.youkuaiyun.com/weixin_45844049/article/details/120767122</guid><author>weixin_45844049</author><pubDate>Mon, 18 Oct 2021 17:16:51 +0800</pubDate><description><![CDATA[Promise 想必大家都十分熟悉，想想就那么几个 api，可是你真的了解 Promise 吗？]]></description><category></category></item><item><title><![CDATA[越来越火的Fetch是如何请求数据的？与Ajax和Axios又有什么区别]]></title><link>https://blog.youkuaiyun.com/weixin_45844049/article/details/120644658</link><guid>https://blog.youkuaiyun.com/weixin_45844049/article/details/120644658</guid><author>weixin_45844049</author><pubDate>Sat, 09 Oct 2021 15:43:30 +0800</pubDate><description><![CDATA[fetch()是 XMLHttpRequest 的升级版，用于在 JavaScript 脚本里面发出 HTTP 请求。浏览器原生提供这个对象。本文详细介绍它的用法，以及与Ajax和Axios的区别~]]></description><category></category></item><item><title><![CDATA[简洁全面的“手写AJAX，以及用Promise封装AJAX请求“，给你一个满分答案]]></title><link>https://blog.youkuaiyun.com/weixin_45844049/article/details/120624785</link><guid>https://blog.youkuaiyun.com/weixin_45844049/article/details/120624785</guid><author>weixin_45844049</author><pubDate>Wed, 06 Oct 2021 14:59:23 +0800</pubDate><description><![CDATA[原生js实现Ajax，本文用最简洁的脉路，帮你梳理前端经典面试“手写ajax”，然后再告诉你廖雪峰是如何使用Promise封装ajax！！！]]></description><category></category></item><item><title><![CDATA[由浅入深的正则表达式教程，简单快速学习正则]]></title><link>https://blog.youkuaiyun.com/weixin_45844049/article/details/120592479</link><guid>https://blog.youkuaiyun.com/weixin_45844049/article/details/120592479</guid><author>weixin_45844049</author><pubDate>Mon, 04 Oct 2021 03:43:07 +0800</pubDate><description><![CDATA[正则表达式，对大家来说既熟悉又陌生。熟悉是因为工作中有很多场景能用到，比如手机号、邮箱、密码等规则校验。陌生则是因为正则表达式看上去就是一堆乱码，且一眼看上去很难看懂匹配规则。有时候在网上去找一个特定规则的正则表达式，搜出来的结果各不相同，执行效果更是不尽人意，想自己去修改，感觉也无从下手。让我们通过这篇由浅入深的正则表达式教程，简单快速学习正则！！！]]></description><category></category></item><item><title><![CDATA[掌握js类型转换，先来学习js原始值转换的抽象操作 toPrimitive]]></title><link>https://blog.youkuaiyun.com/weixin_45844049/article/details/120576627</link><guid>https://blog.youkuaiyun.com/weixin_45844049/article/details/120576627</guid><author>weixin_45844049</author><pubDate>Fri, 01 Oct 2021 11:45:58 +0800</pubDate><description><![CDATA[`Symbol.toPrimitive` 是一个内置的抽象操作，它是作为对象的函数值属性存在的，当一个对象转换为对应的 原始值 时，会调用此函数。]]></description><category></category></item><item><title><![CDATA[JS 数组有哪些原生方法，那么多 API 真的很难记住吗？]]></title><link>https://blog.youkuaiyun.com/weixin_45844049/article/details/120558427</link><guid>https://blog.youkuaiyun.com/weixin_45844049/article/details/120558427</guid><author>weixin_45844049</author><pubDate>Wed, 29 Sep 2021 23:46:15 +0800</pubDate><description><![CDATA[通过梳理数组 API 的方式，归纳整理，你会发现js的数据方法并没有很难记住，一起来学习吧~]]></description><category></category></item><item><title><![CDATA[如何理解 slice() 方法是浅拷贝？深入数组浅拷贝里的小细节]]></title><link>https://blog.youkuaiyun.com/weixin_45844049/article/details/120499516</link><guid>https://blog.youkuaiyun.com/weixin_45844049/article/details/120499516</guid><author>weixin_45844049</author><pubDate>Sun, 26 Sep 2021 23:56:25 +0800</pubDate><description><![CDATA[slice 不会修改原数组，只会返回一个浅复制了原数组中的元素的一个新数组，如何理解slice方法的浅拷贝呢？]]></description><category></category></item><item><title><![CDATA[常见Web安全攻防解析，前端开发的你不来了解一下嘛~]]></title><link>https://blog.youkuaiyun.com/weixin_45844049/article/details/120259199</link><guid>https://blog.youkuaiyun.com/weixin_45844049/article/details/120259199</guid><author>weixin_45844049</author><pubDate>Wed, 15 Sep 2021 03:44:35 +0800</pubDate><description><![CDATA[随着互联网的高速发展，信息安全问题已经成为企业最为关注的焦点之一，而前端又是引发企业安全问题的高危据点。在移动互联网时代，前端人员除了传统的 XSS、CSRF 等安全问题之外，又时常遭遇网络劫持、非法调用 API 等新型安全问题。当然，浏览器自身也在不断在进化和发展，不断引入 CSP、Same-Site Cookies 等新技术来增强安全性，但是仍存在很多潜在的威胁，这需要前端技术人员不断进行“查漏补缺”。]]></description><category></category></item></channel></rss>