<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[反手一个bug的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/haofandedaima</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; haofandedaima]]></copyright><item><title><![CDATA[mac安装oh-my-zsh出现command not found: npm问题解决]]></title><link>https://blog.youkuaiyun.com/haofandedaima/article/details/119699633</link><guid>https://blog.youkuaiyun.com/haofandedaima/article/details/119699633</guid><author>haofandedaima</author><pubDate>Sat, 14 Aug 2021 13:04:25 +0800</pubDate><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在安装完oh-my-zsh以后新建终端输入node或是npm会出现command not found：npm的情况，原因是因为不能够找到npm的环境，一开始我参考了一下网上的一些博客的方法，有点醉，完全被带偏，配置文件改的不忍直视，所以还是从原理上说一下这个问题的原因，别人的方法不一定照搬有用，但是只要原因知道，稍微微调一下即可，希望对大家有帮助
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb]]></description><category></category></item><item><title><![CDATA[React Router学习笔记]]></title><link>https://blog.youkuaiyun.com/haofandedaima/article/details/119699418</link><guid>https://blog.youkuaiyun.com/haofandedaima/article/details/119699418</guid><author>haofandedaima</author><pubDate>Sat, 14 Aug 2021 12:42:38 +0800</pubDate><description><![CDATA[文章目录路由配置基本配置添加首页嵌套路径的非嵌套路由兼容其余路由进入和离开的HookHistoriesbrowserHistoryhashHistorycreateMemoryHistoryIndexRoute与IndexLinkIndexRoute默认路由indexLink
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;React Router是基于React之上的路由库，一开始在官网没找到对应的API，着实费了一点劲，本文将就React Router的内]]></description><category></category></item><item><title><![CDATA[React Hooks的学习与自我理解]]></title><link>https://blog.youkuaiyun.com/haofandedaima/article/details/119698268</link><guid>https://blog.youkuaiyun.com/haofandedaima/article/details/119698268</guid><author>haofandedaima</author><pubDate>Sat, 14 Aug 2021 11:15:42 +0800</pubDate><description><![CDATA[存在的意义
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hooks的作用在于完美过渡React中的类写法到函数式表示，因为我们知道React的函数式表示是不能使用生命周期的，Hooks可以代替React中的生命周期写法，这样就可以帮助完美过渡到函数式表示。这么做的意义是，类和生命周期的写法，不得不将不同的类互相联系起来，导致其中的业务逻辑会因为生命周期交错在一起而使得业务逻辑复杂难以维护
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs]]></description><category></category></item><item><title><![CDATA[全面剖析javascript原型]]></title><link>https://blog.youkuaiyun.com/haofandedaima/article/details/118693595</link><guid>https://blog.youkuaiyun.com/haofandedaima/article/details/118693595</guid><author>haofandedaima</author><pubDate>Tue, 13 Jul 2021 16:36:51 +0800</pubDate><description><![CDATA[文章目录前言正文Prototypeprototype的尽头属性设置属性屏蔽“类”"类"函数构造函数js中模拟类的方式“构造函数”的真相原型继承对象关联创建关联关联关系是备用小结
前言
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;javascript原型在javascript的继承机制上起到重要的作用，前几章我们也一直提到prototype，但没有说它到底是什么，这一章我们将围绕这个全面解析javascript中的继承魔法
正文
Prototype
&nbsp;&nbsp;&nbs]]></description><category></category></item><item><title><![CDATA[深入理解javascript混合对象“类“（二）]]></title><link>https://blog.youkuaiyun.com/haofandedaima/article/details/118600011</link><guid>https://blog.youkuaiyun.com/haofandedaima/article/details/118600011</guid><author>haofandedaima</author><pubDate>Fri, 09 Jul 2021 11:01:01 +0800</pubDate><description><![CDATA[文章目录前言正文显式混入隐式混入小结
前言
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;上一章我们介绍了有关传统面向类的设计模式，实例化，多态，继承，我们了解到这些并没在js中得到应用，js有自己的方式来实现上面的内容，这一章我们将细致地展开js是怎么实现自己的混合对象“类“的
正文
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在继承或者实例化时，JavaScript 的对象机制并不会自动执行复制行为。简单来说，JavaScript 中只有对象，并不存]]></description><category></category></item><item><title><![CDATA[深入理解javascript混合对象“类”（一）]]></title><link>https://blog.youkuaiyun.com/haofandedaima/article/details/118568436</link><guid>https://blog.youkuaiyun.com/haofandedaima/article/details/118568436</guid><author>haofandedaima</author><pubDate>Thu, 08 Jul 2021 14:58:21 +0800</pubDate><description><![CDATA[文章目录前言正文类“类”设计模式javascript中的类类的机制构造函数类的继承多态多重继承小结
前言
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;javascript是一门面向对象语言，但是与传统面向对象语言不同，javascript原理上并没有类的说法，学习过传统面向对象语言的同学们可能知道，面向类的设计模式有三种：实例化（instantiation）、继承（inheritance）和（相对）多态（polymorphism）。但是这些设计模式无法对应到javascript的]]></description><category></category></item><item><title><![CDATA[深入javascript对象语法和应用场景（二）]]></title><link>https://blog.youkuaiyun.com/haofandedaima/article/details/118540621</link><guid>https://blog.youkuaiyun.com/haofandedaima/article/details/118540621</guid><author>haofandedaima</author><pubDate>Wed, 07 Jul 2021 11:12:37 +0800</pubDate><description><![CDATA[文章目录前言正文复制对象不变性对象常量禁止扩展密封冻结存在性遍历小结
前言
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;上一章我们介绍了javascript对象的一些基本用法，这一章我们将继续上一章的内容，讲一些关于javascript进阶的内容
正文
复制对象
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这个就是一个老生常谈的问题了，javascript对象的复制场景分为浅拷贝和深拷贝。浅拷贝只是拷贝一层，更深层次对象级别的只拷贝引用（地址），深拷贝]]></description><category></category></item><item><title><![CDATA[深入javascript对象语法及应用场景（一）]]></title><link>https://blog.youkuaiyun.com/haofandedaima/article/details/118523390</link><guid>https://blog.youkuaiyun.com/haofandedaima/article/details/118523390</guid><author>haofandedaima</author><pubDate>Tue, 06 Jul 2021 17:43:17 +0800</pubDate><description><![CDATA[文章目录前言正文语法类型内置对象可计算属性名数组小结
前言
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;对象是javascript中的一个重要的概念，甚至有“JavaScript 中万物皆是对象”的说法，可以说对于熟悉javascript而言，精通对象的应用场景至关重要，那么到底什么是对象，对象在哪些地方又有怎样的用途呢，这一系列我将带大家深入javascript对象的语法及应用场景
正文
语法
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;对象可以通过]]></description><category></category></item><item><title><![CDATA[深度解析javascript中的this（四）]]></title><link>https://blog.youkuaiyun.com/haofandedaima/article/details/118420251</link><guid>https://blog.youkuaiyun.com/haofandedaima/article/details/118420251</guid><author>haofandedaima</author><pubDate>Fri, 02 Jul 2021 17:57:01 +0800</pubDate><description><![CDATA[文章目录前言正文被忽略的this间接引用箭头函数小结
前言
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;昨天看nodejs很有感触，所以就写了nodejs的文章，抱歉，今天接着之前的部分，我们之前谈到this的四种绑定规则和他们的优先级，但是既然是规则，总有规则的例外，这一章我们就来谈谈this的绑定规则的例外
正文
被忽略的this
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果你把 null 或者 undefined 作为 this 的绑定对象传]]></description><category></category></item><item><title><![CDATA[Node.js 中的阻塞和非阻塞io]]></title><link>https://blog.youkuaiyun.com/haofandedaima/article/details/118366304</link><guid>https://blog.youkuaiyun.com/haofandedaima/article/details/118366304</guid><author>haofandedaima</author><pubDate>Thu, 01 Jul 2021 11:30:58 +0800</pubDate><description><![CDATA[文章目录前言正文共享状态的并发
前言
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Node.js 是运行在服务端的 JavaScript，它具备可以处理高并发的能力，这一章作为nodejs系列文章的第一章，我们将介绍nodejs之所以性能好的原因
正文
共享状态的并发
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;node为javascript引入了一个复杂的概念，共享状态的并发，通俗讲，node中你需要对回调函数如何修改当前内存中的变量特别小心，除此之]]></description><category></category></item><item><title><![CDATA[深度解析javascript中的this（三）]]></title><link>https://blog.youkuaiyun.com/haofandedaima/article/details/118355544</link><guid>https://blog.youkuaiyun.com/haofandedaima/article/details/118355544</guid><author>haofandedaima</author><pubDate>Wed, 30 Jun 2021 13:36:18 +0800</pubDate><description><![CDATA[文章目录前言正文优先级从bind源码看为什么new绑定优先级更高new绑定和显式绑定在函数柯里化的应用小结
前言
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;上一章我们说到，this绑定的四种规则，默认绑定，隐式绑定，显式绑定和new绑定，并且我们抛出了一个问题，如果当这几个绑定一起使用的时候，优先级又是怎样的，这一章我们将就这个问题进一步展开解释
正文
优先级
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;毫无疑问，默认绑定的优先级是四条规则中最低的，]]></description><category></category></item><item><title><![CDATA[深度解析javascript中的this（二）]]></title><link>https://blog.youkuaiyun.com/haofandedaima/article/details/118327610</link><guid>https://blog.youkuaiyun.com/haofandedaima/article/details/118327610</guid><author>haofandedaima</author><pubDate>Tue, 29 Jun 2021 13:37:36 +0800</pubDate><description><![CDATA[文章目录前言正文调用位置绑定规则默认绑定隐式绑定隐式丢失显式绑定硬绑定API调用的“上下文”new绑定小结
前言
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;上篇文章我们初步了解了有关this的知识，在不考虑箭头函数的情况下，this指向函数的调用者，这一章我们将进一步学习了解this
正文
调用位置
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在理解 this 的绑定过程之前，首先要理解调用位置：调用位置就是函数在代码中被调用的位置（而不是声明的位置]]></description><category></category></item><item><title><![CDATA[深度解析javascript中的this（一）]]></title><link>https://blog.youkuaiyun.com/haofandedaima/article/details/118294978</link><guid>https://blog.youkuaiyun.com/haofandedaima/article/details/118294978</guid><author>haofandedaima</author><pubDate>Mon, 28 Jun 2021 10:45:10 +0800</pubDate><description><![CDATA[文章目录前言正文为什么需要使用this对this的错误认知指向函数自身指向函数的作用域this指向函数调用者小结
前言
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this 关键字是 JavaScript 中最复杂的机制之一。它是一个很特别的关键字，被自动定义在所有函数的作用域中。我记得自己从开始学习javascript开始就开始不停地被人问到关于this的知识，自己也从来不敢保证自己回答的是对的。毫无疑问，在缺乏清晰认识的情况下，this 对开发者来说完全就是一种魔法，这系列文]]></description><category></category></item><item><title><![CDATA[一篇文章帮你真正理解javascsript作用域闭包]]></title><link>https://blog.youkuaiyun.com/haofandedaima/article/details/118210762</link><guid>https://blog.youkuaiyun.com/haofandedaima/article/details/118210762</guid><author>haofandedaima</author><pubDate>Fri, 25 Jun 2021 15:46:29 +0800</pubDate><description><![CDATA[文章目录前言正文javascript闭包无处不在闭包的实质闭包的真正意义循环和闭包模块小结
前言
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;关于javascript闭包其实已经是老生常谈了，我很久以前也写过有关闭包的文章，前段时间面试字节跳动的时候，面试官笑着和我说，闭包的内容可以再看看，以前我对闭包的认识和理解也是狭隘的，闭包是这门语言中极其难以掌握又非常重要的概念，这一篇文章的意义旨在帮大家真正理解javascript闭包
正文
javascript闭包无处不在
&nbsp]]></description><category></category></item><item><title><![CDATA[深入理解javascript变量提升机制]]></title><link>https://blog.youkuaiyun.com/haofandedaima/article/details/118182430</link><guid>https://blog.youkuaiyun.com/haofandedaima/article/details/118182430</guid><author>haofandedaima</author><pubDate>Thu, 24 Jun 2021 13:51:34 +0800</pubDate><description><![CDATA[文章目录前言正文变量提升变量提升的作用域函数优先小结
前言
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;经过前几章的学习，相信大家已经很熟悉作用域的概念了，前几章我们介绍了关于函数作用域的相关概念，这一章我们将进一步来学习javascript编译执行过程中的特殊机制，变量提升机制
正文
变量提升
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;包括变量和函数在内的所有声明都会在任何代码被执行前首先
被处理。当你看到 var a = 2; 时，可能会认为这是]]></description><category></category></item><item><title><![CDATA[深入理解javascript块作用域]]></title><link>https://blog.youkuaiyun.com/haofandedaima/article/details/118145526</link><guid>https://blog.youkuaiyun.com/haofandedaima/article/details/118145526</guid><author>haofandedaima</author><pubDate>Wed, 23 Jun 2021 15:42:56 +0800</pubDate><description><![CDATA[文章目录前言正文块作用域withtry/catchlet/const块作用域的作用垃圾收集let循环小结
前言
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;上一章我们介绍到，javascript中的作用域就像一个个小“气泡”，而函数作用域就是其中的一种产生方式，每声明一个函数都会为其自身创建一个气泡，属于这个函数的全部变量都可以在整个函数的范围内使用及复用，这一章我们将介绍javascript作用域的另一种小“气泡”，块作用域
正文
块作用域
&nbsp;&nbsp;&nbsp;]]></description><category></category></item><item><title><![CDATA[深入理解javascript函数作用域]]></title><link>https://blog.youkuaiyun.com/haofandedaima/article/details/118112421</link><guid>https://blog.youkuaiyun.com/haofandedaima/article/details/118112421</guid><author>haofandedaima</author><pubDate>Tue, 22 Jun 2021 22:10:52 +0800</pubDate><description><![CDATA[文章目录前言正文函数作用域隐藏内部实现
前言
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;上一章我们介绍了有关javascript词法作用域的相关知识，之前我们是概述地把作用域描绘成一个个小“气泡”， 但是并没有过多解释“气泡”的形成，究竟哪些情况下会形成上述的“气泡”呢，这一章我们将就这个问题详细展开
正文
函数作用域
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JavaScript 具有基于函数的作用域，意味着每声明一个函数都会为其自身创建一个气泡]]></description><category></category></item><item><title><![CDATA[一篇文章带你彻底理解javascript词法作用域]]></title><link>https://blog.youkuaiyun.com/haofandedaima/article/details/118081420</link><guid>https://blog.youkuaiyun.com/haofandedaima/article/details/118081420</guid><author>haofandedaima</author><pubDate>Mon, 21 Jun 2021 13:40:26 +0800</pubDate><description><![CDATA[文章目录前言正文词法阶段词法作用域的查找欺骗词法evalwitheval和with在性能上的损耗小结
前言
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;上篇文章我们了解到“作用域”是一套规则，这套规则用来管理引擎如何在当前作用域以及嵌套的子作用域中根据标识符名称进行变量查找。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;作用域共有两种主要的工作模型。第一种是最为普遍的，被大多数编程语言所采用的词法作用域，我们会对这种作用域进行深入讨论。另外一种叫作动态]]></description><category></category></item><item><title><![CDATA[由LHS和RHS深入理解javascript引擎与作用域的交互]]></title><link>https://blog.youkuaiyun.com/haofandedaima/article/details/118021226</link><guid>https://blog.youkuaiyun.com/haofandedaima/article/details/118021226</guid><author>haofandedaima</author><pubDate>Fri, 18 Jun 2021 16:28:43 +0800</pubDate><description><![CDATA[文章目录前言
前言
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;几乎所有编程语言最基本的功能之一，就是能够储存变量当中的值，并且能在之后对这个值进行访问或修改。事实上，正是这种储存和访问变量的值的能力将状态带给了程序。一套设计良好的规则来存储变量，并且之后可以方便地找到这些变量。这套规则被称为作用域。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;对于javascript而言，与传统编译语言不同，我们常称它为“动态解释性“语言，因]]></description><category></category></item><item><title><![CDATA[字节抖音前端社招一年经验offer有感]]></title><link>https://blog.youkuaiyun.com/haofandedaima/article/details/117983632</link><guid>https://blog.youkuaiyun.com/haofandedaima/article/details/117983632</guid><author>haofandedaima</author><pubDate>Thu, 17 Jun 2021 10:21:33 +0800</pubDate><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;今天想了很多，转眼间工作就已经一年有余了，正式收到字节offer的那刻，眼泪不由自主地流了下来，出乎我意料地，涌上心头的更多的是怀念，马上要离开广州，有很多值得怀念的人和事情
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;说实话，毕业这一年，真的很坎坷，被校招的企业莫名劝退，迷茫，再重新站起来，重新去面试，那段时间，我可能是最熟悉广州的人之一，两三点醒来，彻夜彻夜地睡不着，焦虑地看着bo]]></description><category></category></item></channel></rss>