<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Allan_L的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Allan_L</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Allan_L]]></copyright><item><title><![CDATA[防抖和节流]]></title><link>https://blog.youkuaiyun.com/Allan_L/article/details/89465291</link><guid>https://blog.youkuaiyun.com/Allan_L/article/details/89465291</guid><author>Allan_L</author><pubDate>Tue, 23 Apr 2019 08:37:52 +0800</pubDate><description><![CDATA[/*
  节流和防抖的区别是什么？
  节流：频繁输入/点击，只在达到规定的时间后才发送接口请求（懒加载：滚动条监听，按钮点击）
  防抖：频繁输入/点击，每次都会重新计时，直到用户停止的时间达到限制的时间。（输入框，按钮点击，）
*/

window.onload = function() {
      // 1、获取按钮，绑定点击事件
      var myThrottle = docu...]]></description><category></category></item><item><title><![CDATA[js字符串的方法集合]]></title><link>https://blog.youkuaiyun.com/Allan_L/article/details/89298968</link><guid>https://blog.youkuaiyun.com/Allan_L/article/details/89298968</guid><author>Allan_L</author><pubDate>Sun, 14 Apr 2019 17:31:42 +0800</pubDate><description><![CDATA[var str = 'liu_Allan9';
    
    //1. slince() 第一个参数为开始截取的下标，第二个参数为结束的下标（截取的字符不会包括此下标）
    console.log(str.slice(0,2))

    //2. substr() 从起始（第一个参数）字符处，截取指定数目（第二个参数）的字符
    console.log(str.substr(...]]></description><category></category></item><item><title><![CDATA[day4(2019-2-22 周日) JavaScript中的Generator函数 和 iterator函数]]></title><link>https://blog.youkuaiyun.com/Allan_L/article/details/87905914</link><guid>https://blog.youkuaiyun.com/Allan_L/article/details/87905914</guid><author>Allan_L</author><pubDate>Sun, 24 Feb 2019 18:24:26 +0800</pubDate><description><![CDATA[/*
  auth: Allan_Liu
  date: 2019-2-24
  mail: allan_liu986@163.com
  info:
    Generator函数的简介：
      1. *代表是生成器函数（Generator）
      2. yield关键字是ES6的新特性，通过它来指定调用next()方法时的 返回值 及 返回顺序(比如Example1)
      ...]]></description><category></category></item><item><title><![CDATA[day3(2019-2-13 周3) Promise专栏]]></title><link>https://blog.youkuaiyun.com/Allan_L/article/details/87187578</link><guid>https://blog.youkuaiyun.com/Allan_L/article/details/87187578</guid><author>Allan_L</author><pubDate>Wed, 13 Feb 2019 16:11:22 +0800</pubDate><description><![CDATA[
Promise.all()方法
问题：什么是promise.all（）方法？
promise.all()方法用于将多个 Promise 实例，包装成一个新的 Promise 实例。
promise.all()方法接受一个参数， 这个参数可以一般是一个数组（或者其他具有iterator迭代属性的参数），而且必须是每个成员都是promise实例。
注意：所有的参数必须都是resolve状态，prom...]]></description><category></category></item><item><title><![CDATA[day2（ 2019-2-12 周2)this指向，es6/es7新规 iterator迭代器]]></title><link>https://blog.youkuaiyun.com/Allan_L/article/details/87162824</link><guid>https://blog.youkuaiyun.com/Allan_L/article/details/87162824</guid><author>Allan_L</author><pubDate>Wed, 13 Feb 2019 10:07:28 +0800</pubDate><description><![CDATA[7. this指向

确认this指向是在执行代码的时候，而不是定义代码的时候。因为this是执行上下文的一部分。

Example1：

var a = { name: 'A', fn: function () { console.log(this.name) } } a.fn() // this === a a.fn.call({name: 'B'}) // this === {name: '...]]></description><category></category></item><item><title><![CDATA[day1(2019-2-11)]]></title><link>https://blog.youkuaiyun.com/Allan_L/article/details/87020330</link><guid>https://blog.youkuaiyun.com/Allan_L/article/details/87020330</guid><author>Allan_L</author><pubDate>Mon, 11 Feb 2019 20:29:05 +0800</pubDate><description><![CDATA[1. 变量（全局 和 局部）

 

关于--变量提升：

var声明的变量有变量提升，会提升到全局或者当前函数体的顶端

Es6的提出块级作用域的概念，let和const存在TDZ临时死区概念，不存在变量提升

Example：

function test() {

//TDZ临时死区开始

console.log(a) // a is not defined!

//TDZ临时死区结束

l...]]></description><category></category></item><item><title><![CDATA[亲测好用系列：webpack.config.js常见配置介绍]]></title><link>https://blog.youkuaiyun.com/Allan_L/article/details/85261468</link><guid>https://blog.youkuaiyun.com/Allan_L/article/details/85261468</guid><author>Allan_L</author><pubDate>Wed, 26 Dec 2018 14:24:22 +0800</pubDate><description><![CDATA[在webpack.config.js文件中：

现在的webpack版本需要指定当前的构建环境，mode: devlopment
代码书写错误，配置  devtool: ‘source-map’ 可定位到源码，如果没有配置此项，只能定位到打包以后的bundle.js文件。


...]]></description><category></category></item><item><title><![CDATA[亲测好用系列：package.json中常用的webpack插件以及作用]]></title><link>https://blog.youkuaiyun.com/Allan_L/article/details/85251602</link><guid>https://blog.youkuaiyun.com/Allan_L/article/details/85251602</guid><author>Allan_L</author><pubDate>Tue, 25 Dec 2018 18:29:36 +0800</pubDate><description><![CDATA[

cross-env： 忽略跨平台，兼容windows和mac系统
	NODE_ENV:  是用户一个自定义的环境变量
	NODE_ENV的用法：在webpack.config.js中通过 process.env.NODE_ENV 判断生产环境或开发环境的依据的
process ：node.API  全局变量
	process.env:  读取项目运行环境的配置
webpack-dev-serv...]]></description><category></category></item><item><title><![CDATA[亲测好用系列：命令行中输入 npm run ***  一次执行两条命令]]></title><link>https://blog.youkuaiyun.com/Allan_L/article/details/85245488</link><guid>https://blog.youkuaiyun.com/Allan_L/article/details/85245488</guid><author>Allan_L</author><pubDate>Tue, 25 Dec 2018 11:39:59 +0800</pubDate><description><![CDATA[亲测好用系列：
1.在当前项目中，执行以下依赖：
npm install concurrently --save    //concurrently：同时
2. 在package.json文件的script标签，嵌入一下代码：
&amp;quot;start&amp;quot;: &amp;quot;concurrently \&amp;quot;npm run dev\&amp;quot; \&amp;quot;node app.js\&amp;quot;&amp;quot;,

此时，在命令行中，输入n]]></description><category></category></item><item><title><![CDATA[webpack常见插件]]></title><link>https://blog.youkuaiyun.com/Allan_L/article/details/85160084</link><guid>https://blog.youkuaiyun.com/Allan_L/article/details/85160084</guid><author>Allan_L</author><pubDate>Fri, 21 Dec 2018 12:12:24 +0800</pubDate><description><![CDATA[
 


html-webpack-plugin

我们可以看到，webpack 生成 print.bundle.js
和 app.bundle.js
文件，这也和我们在 index.html
文件中指定的文件名称相对应。如果你在浏览器中打开 index.html
，就可以看到在点击按钮时会发生什么。
但是，如果我们更改了我们的一个入口起点的名称，甚至添加了一个新的名称，会发生什么？生成的包将被重...]]></description><category></category></item><item><title><![CDATA[js中比较两个数组中是否含有相同的元素，可去重，可删除合并为新数组]]></title><link>https://blog.youkuaiyun.com/Allan_L/article/details/85145688</link><guid>https://blog.youkuaiyun.com/Allan_L/article/details/85145688</guid><author>Allan_L</author><pubDate>Thu, 20 Dec 2018 22:50:51 +0800</pubDate><description><![CDATA[//做比较的两个数组
var array1 = ['a','b','c','d','e'];//数组1   （所有人）
var array2 = ['d','f','e','a','p'];//数组2   （需要删除的人）

//临时数组存放
var tempArray1 = [];//临时数组1
var tempArray2 = [];//临时数组2

for(var i=0;i&amp;amp;amp;lt;arra...]]></description><category></category></item><item><title><![CDATA[网页Request Headers请求头和Response Headers响应头]]></title><link>https://blog.youkuaiyun.com/Allan_L/article/details/85089812</link><guid>https://blog.youkuaiyun.com/Allan_L/article/details/85089812</guid><author>Allan_L</author><pubDate>Wed, 19 Dec 2018 10:18:51 +0800</pubDate><description><![CDATA[

 

Request Headers

Accept:告诉服务器，客户机支持的数据类型

Accept-Encoding:告诉服务器，客户机支持的数据压缩格式

Cache-Control：缓存控制，服务器通过控制浏览器要不要缓存数据

Connection:处理完这次请求，是断开连接还是保持连接

Cookie:客户机通过这个可以向服务器带数据

Host:访问的主机名

Upgrade-I...]]></description><category></category></item><item><title><![CDATA[git stash 的各项命令用法]]></title><link>https://blog.youkuaiyun.com/Allan_L/article/details/85052950</link><guid>https://blog.youkuaiyun.com/Allan_L/article/details/85052950</guid><author>Allan_L</author><pubDate>Mon, 17 Dec 2018 17:39:13 +0800</pubDate><description><![CDATA[今天在看一个bug，之前一个分支的版本是正常的，在新的分支上上加了很多日志没找到原因，希望回溯到之前的版本，确定下从哪个提交引入的问题，但是还不想把现在的修改提交，也不希望在Git上看到当前修改的版本（带有大量日志和调试信息）。因此呢，查查Git有没有提供类似功能，就找到了git stash的命令。

综合下网上的介绍和资料，git stash（git储藏）可用于以下情形：

发现有一个类是多余的...]]></description><category></category></item><item><title><![CDATA[git rebase 和git merge区别]]></title><link>https://blog.youkuaiyun.com/Allan_L/article/details/85051411</link><guid>https://blog.youkuaiyun.com/Allan_L/article/details/85051411</guid><author>Allan_L</author><pubDate>Mon, 17 Dec 2018 16:27:37 +0800</pubDate><description><![CDATA[使用下面的关系区别这两个操作：
git pull = git fetch + git merge
git pull --rebase = git fetch + git rebase

现在来看看git merge和git rebase的区别。

假设有3次提交A,B,C。



在远程分支origin的基础上创建一个名为&quot;mywork&quot;的分支并提交了，同时有其他人在&quot;origin&quot;上做了一些修改...]]></description><category></category></item><item><title><![CDATA[打印中奖名单表格流程（wps表格）]]></title><link>https://blog.youkuaiyun.com/Allan_L/article/details/84968680</link><guid>https://blog.youkuaiyun.com/Allan_L/article/details/84968680</guid><author>Allan_L</author><pubDate>Wed, 12 Dec 2018 11:23:41 +0800</pubDate><description><![CDATA[1. 将fate项目中的add.txt文件中的中奖人名单，复制粘贴到企微中并做好记录（第几次中奖的人数）。

2. 启动windows的wps表格，选中第一个单元格（A1），从企微中赋值、粘贴名单。粘贴完以后，直接去“数据”--》“分列”--》“分隔符号”--》逗号和英文冒号（作为依据）--》 然后点击下一步和完成

3. 全部选中并复制， 选中下面一行的空白单元格（A列），然后点击 “开始” -...]]></description><category></category></item><item><title><![CDATA[本地代码与远程Git建立连接（Mac）]]></title><link>https://blog.youkuaiyun.com/Allan_L/article/details/83818330</link><guid>https://blog.youkuaiyun.com/Allan_L/article/details/83818330</guid><author>Allan_L</author><pubDate>Wed, 12 Dec 2018 10:11:47 +0800</pubDate><description><![CDATA[1. 确定本地是否已有公钥密钥？

在终端输入：cd ~/.ssh

 

2. 查看自己的公钥？

输入： ls 展示所有文件

会有3个文件：id_rsa id_rsa.pub known_hosts (如果没有，则需要创建公钥密钥： $ssh-keygen -t rsa -C &quot;你的git账号&quot; )

 

输入： cat id_rsa.pub （之后展示的就是所有的公钥了）

 

3. ...]]></description><category></category></item><item><title><![CDATA[Mac笔记本windows虚拟机安装教程]]></title><link>https://blog.youkuaiyun.com/Allan_L/article/details/84841932</link><guid>https://blog.youkuaiyun.com/Allan_L/article/details/84841932</guid><author>Allan_L</author><pubDate>Wed, 05 Dec 2018 19:48:10 +0800</pubDate><description><![CDATA[没有太多的介绍，不需要去看太多的文字，只要按照视频里的教成做就好了，避免走弯路（迅雷），视频里都介绍到了，我是按照第一种做的：以下是原文链接

http://www.zealer.com/post/862

 有一点需要说的：不知道有的人会不会像我一样，parallers DeskTop会卡死，就像下面这样：

解决办法是：

选中pd ---》 菜单栏“文件”-------》点击“删除”（会弹出...]]></description><category></category></item><item><title><![CDATA[Css画画系列-----三角、对勾等]]></title><link>https://blog.youkuaiyun.com/Allan_L/article/details/84146708</link><guid>https://blog.youkuaiyun.com/Allan_L/article/details/84146708</guid><author>Allan_L</author><pubDate>Fri, 16 Nov 2018 22:26:16 +0800</pubDate><description><![CDATA[画对勾：

.container {
    width: 8px;
     height: 16px;
     border-color: rgba(117,200,43,1);
     border-style: solid;
     border-width: 0 2px 2px 0;
     transform: rotate(45deg);
   }

三角：

.contai...]]></description><category></category></item><item><title><![CDATA[前端面试--js代码片段（基础中的基础，持续更新中）]]></title><link>https://blog.youkuaiyun.com/Allan_L/article/details/84146265</link><guid>https://blog.youkuaiyun.com/Allan_L/article/details/84146265</guid><author>Allan_L</author><pubDate>Fri, 16 Nov 2018 21:38:16 +0800</pubDate><description><![CDATA[代码片段1：
 var arr1 = [1,2,3,4,5]
   var arr2 = []
    for(var i = 0; i &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt; arr1.length; i ++) {
      arr2.push(function(){   //循环完给arr2push的，所以都是5
        alert(i)
      })
    }
    arr2[0]()   

此代码...]]></description><category></category></item><item><title><![CDATA[单页应用（SPA） 和 多页应用（MPA) 的对比]]></title><link>https://blog.youkuaiyun.com/Allan_L/article/details/84145541</link><guid>https://blog.youkuaiyun.com/Allan_L/article/details/84145541</guid><author>Allan_L</author><pubDate>Fri, 16 Nov 2018 20:39:13 +0800</pubDate><description><![CDATA[]]></description><category></category></item></channel></rss>