<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[izwell的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/MessageBox_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; MessageBox_]]></copyright><item><title><![CDATA[VSCode如何调试TS + node项目]]></title><link>https://blog.youkuaiyun.com/MessageBox_/article/details/124045817</link><guid>https://blog.youkuaiyun.com/MessageBox_/article/details/124045817</guid><author>MessageBox_</author><pubDate>Fri, 08 Apr 2022 17:01:05 +0800</pubDate><description><![CDATA[在VsCode的项目.vscode目录下新建文件launch.json
内容如下：
{
  // 使用 IntelliSense 了解相关属性。 
  // 悬停以查看现有属性的描述。
  // 欲了解更多信息，请访问: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",]]></description><category></category></item><item><title><![CDATA[ESLINT错误提示 no-unused-vars]]></title><link>https://blog.youkuaiyun.com/MessageBox_/article/details/103584877</link><guid>https://blog.youkuaiyun.com/MessageBox_/article/details/103584877</guid><author>MessageBox_</author><pubDate>Tue, 17 Dec 2019 17:54:04 +0800</pubDate><description><![CDATA[ESLINT错误提示 no-unused-vars
使用ESLINT时遇到如下错误的提示

查阅资料得知，是需要使用插件 https://github.com/typescript-eslint/typescript-eslint/issues/941
全局按照  eslint-plugin-react
npm install eslint-plugin-react -g
修改eslint的配置项...]]></description><category></category></item><item><title><![CDATA[Functional-Light-JS ---- Recursion]]></title><link>https://blog.youkuaiyun.com/MessageBox_/article/details/100554048</link><guid>https://blog.youkuaiyun.com/MessageBox_/article/details/100554048</guid><author>MessageBox_</author><pubDate>Thu, 05 Sep 2019 13:36:22 +0800</pubDate><description><![CDATA[递归

递归的定义
递归的好处
互递归
递归的弊端
尾调用
递归的优化

递归的定义
	递归就是一个函数在其内部调用它自己，同时有一个条件来终止这个递归的循环调用。

递归的好处
	 递归可以使我们的代码更加的接近声明式的代码，可读性会更加好一些。

	The most commonly cited reason that recursion fits the spirit of FP is be...]]></description><category></category></item><item><title><![CDATA[JS中创建任意长度的填充数组]]></title><link>https://blog.youkuaiyun.com/MessageBox_/article/details/96288686</link><guid>https://blog.youkuaiyun.com/MessageBox_/article/details/96288686</guid><author>MessageBox_</author><pubDate>Wed, 17 Jul 2019 11:34:30 +0800</pubDate><description><![CDATA[JS中创建任意长度的填充数组
常见的创建数组的方式就是使用Array(length);这种方式来创建数组，但这样创建的数组会存在两个问题，
一是所生成的数组实际上是一个稀疏数组。而由此所带来的直接问题是，你无法使用map或者forEach方法来对其进行遍历。
举个列子
var a = new Array(5);
//[,,,,]
a = a.map((item, index)=&gt;index)...]]></description><category></category></item><item><title><![CDATA[rgba转16进制]]></title><link>https://blog.youkuaiyun.com/MessageBox_/article/details/90770243</link><guid>https://blog.youkuaiyun.com/MessageBox_/article/details/90770243</guid><author>MessageBox_</author><pubDate>Tue, 04 Jun 2019 15:48:56 +0800</pubDate><description><![CDATA[今天工作中遇到如下需求，需要将rgba的颜色值，转换为16进制的颜色值
将rgb转换为16进制我们都知道，但是将rgba装换为16进制知道的人可能就很少了，经过我查阅资料发现，国内几乎没有对于这个转换的正确解释，下面我将讲解如何进行装换。
其实很简单，将rgba就是转换为8位的16进制即可。前6位为正常的rgb的转换，最后一位是透明度的转换。
其中使用00 — 代表0%， 使用ff – 代表100...]]></description><category></category></item><item><title><![CDATA[setMonth的小坑]]></title><link>https://blog.youkuaiyun.com/MessageBox_/article/details/90716495</link><guid>https://blog.youkuaiyun.com/MessageBox_/article/details/90716495</guid><author>MessageBox_</author><pubDate>Fri, 31 May 2019 15:04:59 +0800</pubDate><description><![CDATA[今天在发现一个我之前写的测试用例出现了错误，最后发现是对Date的setMonth方法使用不够理解，下面进行一下分享。
大家都知道setMoth就是设置Date对象的月份信息的，
MDN的示列代码如下
var event = new Date('August 19, 1975 23:15:30');

event.setMonth(3);

console.log(event.getMonth()...]]></description><category></category></item><item><title><![CDATA[React + Jest + Enzyme]]></title><link>https://blog.youkuaiyun.com/MessageBox_/article/details/90640632</link><guid>https://blog.youkuaiyun.com/MessageBox_/article/details/90640632</guid><author>MessageBox_</author><pubDate>Tue, 28 May 2019 15:39:52 +0800</pubDate><description><![CDATA[遇到的小坑
1.在引入测试的组件时，有时候我们的组件是以一个高阶的组件的形式导出的，而在我们测试的时候，我们只需要测试这个组件本身，不需要引入这个组件的封装体进行测试。
比如我们的组件A.js如下
```
class  A  extends Component{
	//....
}
export default HOC(A);
```

此时我们需要在对A.js进行如下更改
```
export ...]]></description><category></category></item><item><title><![CDATA[chrome安装插件提示image  decode failed]]></title><link>https://blog.youkuaiyun.com/MessageBox_/article/details/90257191</link><guid>https://blog.youkuaiyun.com/MessageBox_/article/details/90257191</guid><author>MessageBox_</author><pubDate>Thu, 16 May 2019 09:47:42 +0800</pubDate><description><![CDATA[今天在安装chrome插件时，发现插件列表中的所有图片均无法加载，点击安装时，页面提示image decode failed,在网上搜索了一个方法，成功解决，感觉很神奇，解决方法如下：
删除C:\Windows\System32\drivers\etc下的hosts和hosts.dz文件或者剪切到别处，问题解决

...]]></description><category></category></item><item><title><![CDATA[eslint提示'React' is defined but never used]]></title><link>https://blog.youkuaiyun.com/MessageBox_/article/details/89454268</link><guid>https://blog.youkuaiyun.com/MessageBox_/article/details/89454268</guid><author>MessageBox_</author><pubDate>Mon, 22 Apr 2019 16:15:41 +0800</pubDate><description><![CDATA[使用eslint --init进行基础的设置后，在React项目中发现如下报错提示
'React' is defined but never used
在.eslintrc.js文件中配置如下rule即可
"react/jsx-uses-react": 2

]]></description><category></category></item><item><title><![CDATA[absolute 与overflow:hidden常见bug]]></title><link>https://blog.youkuaiyun.com/MessageBox_/article/details/88830986</link><guid>https://blog.youkuaiyun.com/MessageBox_/article/details/88830986</guid><author>MessageBox_</author><pubDate>Tue, 26 Mar 2019 21:37:18 +0800</pubDate><description><![CDATA[我们使用第三方的组件时，第三方组件有时会依据我们引入组件的DOM的位置进行定位，很常见的CSS写法就是使用position：relative和position:absolute进行搭配使用，有时在父容器的外层添加了overflow:hidden之后，就会出现一些莫名奇妙的bug.下面举个例子
你可以访问如下页面：https://alizwell.github.io/front-end/CSS/ab...]]></description><category></category></item><item><title><![CDATA[CSS的padding实现百分比布局]]></title><link>https://blog.youkuaiyun.com/MessageBox_/article/details/88553184</link><guid>https://blog.youkuaiyun.com/MessageBox_/article/details/88553184</guid><author>MessageBox_</author><pubDate>Thu, 14 Mar 2019 15:05:26 +0800</pubDate><description><![CDATA[在我以前的文章中，我讲过CSS中的一系列的百分比单位，其中margin和padding是相对于容器的宽度的，最近看到了一个文章，讲的是用padding来实现图片等比例布局。大概的需求如下，我们需要将图片按照我们希望的比列进行显示，图片的宽度是按照百分比响应式。你可能觉得这没啥，因为img标签在没有设定固定的高度时，其高度会按照图片本身的比列进行计算。但是我们的图片本身可能不是按照我们希望的比列。这...]]></description><category></category></item><item><title><![CDATA[mysql中的union小坑]]></title><link>https://blog.youkuaiyun.com/MessageBox_/article/details/88529662</link><guid>https://blog.youkuaiyun.com/MessageBox_/article/details/88529662</guid><author>MessageBox_</author><pubDate>Wed, 13 Mar 2019 12:01:38 +0800</pubDate><description><![CDATA[今天在使用union时，遇到一个小小的坑
业务情景如下，需要从表中查询出对应数据同时，还需要将当前表的最大id给查询出来，使用的SQL如下
SELECT
	id 
FROM
	chat_session 
WHERE
	`from` = $from_id 
	AND `to` = $to_id 
	AND workbench_id = $workbench_id 
	AND type = $type...]]></description><category></category></item><item><title><![CDATA[mysql中数据查重以及重复数据删除]]></title><link>https://blog.youkuaiyun.com/MessageBox_/article/details/88529509</link><guid>https://blog.youkuaiyun.com/MessageBox_/article/details/88529509</guid><author>MessageBox_</author><pubDate>Wed, 13 Mar 2019 11:51:46 +0800</pubDate><description><![CDATA[有时候 业务功能出现了问题，最后发现是数据有问题，此时我们需要进出现问题的数据查询出来，并根据查询的结果将重复数据进行处理。
举一个列子，有如下数据




id
from
to
time
workbench_id




1
345
543
156456456
3


2
345
543
1564651156
3


3
543
345
1564661651
3


比如上表的数据中，我们认为f...]]></description><category></category></item><item><title><![CDATA[使用localStorage进行页面间通信]]></title><link>https://blog.youkuaiyun.com/MessageBox_/article/details/88398854</link><guid>https://blog.youkuaiyun.com/MessageBox_/article/details/88398854</guid><author>MessageBox_</author><pubDate>Mon, 11 Mar 2019 17:18:13 +0800</pubDate><description><![CDATA[在h5中，新增了localStorage，对应localStorage的有一个storage事件，这个事件可以用来进行页面间进行通信。
页面间通信的列子
&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&quot;en&quot;&amp;gt;
&amp;lt;head&amp;gt;
	&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
	&amp;lt;title&amp;gt;A&amp;lt;/title&a]]></description><category></category></item><item><title><![CDATA[TP下的异常捕获]]></title><link>https://blog.youkuaiyun.com/MessageBox_/article/details/88395254</link><guid>https://blog.youkuaiyun.com/MessageBox_/article/details/88395254</guid><author>MessageBox_</author><pubDate>Mon, 11 Mar 2019 15:40:47 +0800</pubDate><description><![CDATA[在项目中使用了TP框架，想要进行一个SQL更新语句的异常捕获，使用了如下写法
		try{
            $res = User::table(&quot;chat_session&quot;)-&amp;gt;insertGetId($arr);
        }catch(\Exception $e){  //书写为（Exception $e）将无效
            die(json_encode(
...]]></description><category></category></item><item><title><![CDATA[ES5的函数与ES6的箭头函数的区别]]></title><link>https://blog.youkuaiyun.com/MessageBox_/article/details/88294158</link><guid>https://blog.youkuaiyun.com/MessageBox_/article/details/88294158</guid><author>MessageBox_</author><pubDate>Thu, 07 Mar 2019 11:45:52 +0800</pubDate><description><![CDATA[之前被人问过这样一个问题，ES5的函数与ES6中的箭头函数有哪些区别
当时想着这么不是很简单么，ES6中的箭头函数是拥有this绑定的，且箭头函数的this绑定是尤其定义时的作用域决定的，且箭头函数的写法更精简。其实这么说也没有问题，但是太肤浅了。
查看了阮一峰大神的es6网站，看到有如下描述
（1）函数体内的this对象，就是定义时所在的对象，而不是使用时所在的对象。
	由于箭头函数使得this...]]></description><category></category></item><item><title><![CDATA[JS-防抖和节流]]></title><link>https://blog.youkuaiyun.com/MessageBox_/article/details/88121866</link><guid>https://blog.youkuaiyun.com/MessageBox_/article/details/88121866</guid><author>MessageBox_</author><pubDate>Thu, 07 Mar 2019 10:04:19 +0800</pubDate><description><![CDATA[在前端的性能优化中，我们经常会听到有一个叫做防抖和节流的技术

]]></description><category></category></item><item><title><![CDATA[JS正则test的巨坑]]></title><link>https://blog.youkuaiyun.com/MessageBox_/article/details/88241731</link><guid>https://blog.youkuaiyun.com/MessageBox_/article/details/88241731</guid><author>MessageBox_</author><pubDate>Wed, 06 Mar 2019 16:35:01 +0800</pubDate><description><![CDATA[今天和同事问了我一个正则的编写，需求很简单，就是要匹配一个字符串，字符串的最后一部分是一个括号内包含一个数字，如下
123(2)
写的正则如下：
var b =/^[\d\D]*\([1-9]\)$/g;
然后我在控制台进行测试，诡异的事情发生了

同一个测试字符串，结果却不同，我有点惊讶，在网上百度了一下，才发现是正则表达式中的g引起的
之后在MDN搜索到如下内容

所以，使用test时，这个g...]]></description><category></category></item><item><title><![CDATA[二叉树系列(1)-实现排序二叉树]]></title><link>https://blog.youkuaiyun.com/MessageBox_/article/details/87877724</link><guid>https://blog.youkuaiyun.com/MessageBox_/article/details/87877724</guid><author>MessageBox_</author><pubDate>Fri, 22 Feb 2019 14:22:59 +0800</pubDate><description><![CDATA[排序二叉树就是在一棵普通的数的基础上，一个节点的左节点的值一定小于这个节点的值，右节点的值大于这个节点的值。
每棵树都是由节点生成的，每个节点都有左右节点两个属性，用JS来实现如下：
function  Node(data){
	this.data = data;
	this.left = null;
	this.right = null;
}

每棵树都是由根节点构成，且树本身需要一个插入的方法...]]></description><category></category></item><item><title><![CDATA[bind的实现]]></title><link>https://blog.youkuaiyun.com/MessageBox_/article/details/87875952</link><guid>https://blog.youkuaiyun.com/MessageBox_/article/details/87875952</guid><author>MessageBox_</author><pubDate>Fri, 22 Feb 2019 12:12:14 +0800</pubDate><description><![CDATA[ES6中拥有bind，可以通过ES5中的apply来实现
我们知道bind的用法如下
funcA.bind(obj,args);
返回的是一个函数
	Function.prototype.bind = function(context){
		let  arg = [].slice.apply(arguments,1);
		let  self = this;
		return  function...]]></description><category></category></item></channel></rss>