<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[yanggreater的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/yanggreater</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; yanggreater]]></copyright><item><title><![CDATA[JS中闭包的理解]]></title><link>https://blog.youkuaiyun.com/yanggreater/article/details/104360383</link><guid>https://blog.youkuaiyun.com/yanggreater/article/details/104360383</guid><author>yanggreater</author><pubDate>Mon, 17 Feb 2020 17:21:55 +0800</pubDate><description><![CDATA[什么是闭包？

闭包其实就是一个函数，什么样的函数？能够访问另一个函数作用域中变量的函数。

为什么要有闭包？

在回答这个问题之前，我先提一个假设，我们都知道在内部的函数可以访问外部函数的变量，假设现在就是有这么一个需要，需要外部环境来访问函数的内部变量，怎么办？这时就要用到闭包，这就要牵扯到闭包的实现原理，即作用域链的工作。每当函数创建时，JS底层都会在其执行环境下创建一个作用域链，这个作用域...]]></description><category></category></item><item><title><![CDATA[JS中函数方法apply和call函数的工作原理]]></title><link>https://blog.youkuaiyun.com/yanggreater/article/details/104331157</link><guid>https://blog.youkuaiyun.com/yanggreater/article/details/104331157</guid><author>yanggreater</author><pubDate>Sat, 15 Feb 2020 18:03:18 +0800</pubDate><description><![CDATA[在探讨工作原理之前，我们必须要先思考一下这两个函数所起的作用：

1）能够改变原函数的作用域（即：改变this值）；2）能够为原函数传递参数，并且执行了原函数的代码得到想要的结果

在搞清楚它们的作用之后，想要模拟工作原理需要解决的问题有什么？

1）要为原函数绑定我们模拟的函数，这样原函数才能够直接调用

2）改变作用域

3）为原函数传递参数并执行原函数代码

分析清楚了所要解决的问题后，一步...]]></description><category></category></item><item><title><![CDATA[C语言链表大集结]]></title><link>https://blog.youkuaiyun.com/yanggreater/article/details/102538897</link><guid>https://blog.youkuaiyun.com/yanggreater/article/details/102538897</guid><author>yanggreater</author><pubDate>Sun, 13 Oct 2019 22:13:16 +0800</pubDate><description><![CDATA[一张图来显示自己的链表系统

创建链表的两种方式（头插和尾插）；

对链表的数据进行排序，我使用了冒泡排序和直接插入排序

链表的逆转

子链的判别

在除了算法的实现以外，我主要是将每个函数抽象出来（包括数据的输入），设计好了每个函数的接口和返回值。

由于功能较多，在这里就简述一下链表的是否对称的思想：


...]]></description><category></category></item><item><title><![CDATA[C语言中的标准输入和输出函数]]></title><link>https://blog.youkuaiyun.com/yanggreater/article/details/91598191</link><guid>https://blog.youkuaiyun.com/yanggreater/article/details/91598191</guid><author>yanggreater</author><pubDate>Wed, 12 Jun 2019 20:10:16 +0800</pubDate><description><![CDATA[输入函数：

scanf（）、getchar（）、gets（）、fgets（）

输出函数：

printf（）、putchar（）、puts（）;

函数详解：

putchar（）函数和printf（）puts（）函数比较简单在这里不再赘述;

getchar（）函数：没有参数，是从输入缓冲区中读出一个字符;

scanf（“格式控制字符串”，变量地址）

工作原理：

1、从输入缓冲区中按照...]]></description><category></category></item><item><title><![CDATA[C语言数据类型]]></title><link>https://blog.youkuaiyun.com/yanggreater/article/details/90676762</link><guid>https://blog.youkuaiyun.com/yanggreater/article/details/90676762</guid><author>yanggreater</author><pubDate>Wed, 29 May 2019 20:22:00 +0800</pubDate><description><![CDATA[问题描述：

1、数据类型内存问题

2、数据类型转化问题

问题解决：

1、数据类型的内存问题

首先我先把C语言基本数据类型的内存大小列在下方

数据类型
			所占字节数
		
			char
			
			1
		short
			2
		
			int

			float
			
			4
		double
			8
		











一个字节代表计算机8位二进制...]]></description><category></category></item><item><title><![CDATA[Vue实现Element-ui中Message组件]]></title><link>https://blog.youkuaiyun.com/yanggreater/article/details/83278641</link><guid>https://blog.youkuaiyun.com/yanggreater/article/details/83278641</guid><author>yanggreater</author><pubDate>Mon, 22 Oct 2018 21:17:50 +0800</pubDate><description><![CDATA[在我们初学组件时，只知道调用组件的时候通过import调用组件，然后显示的通过标签去调用,通过数据驱动来决定组件的显示与否，但是在看了element-ui的源码后，我才知道可以通过注册Vue原型，全局调用组件。接下来通过代码介绍原理

同样，我们需要先写一个message.vue来规定message组件显示的内容


&amp;lt;template&amp;gt;
  &amp;lt;transition name=&quot;...]]></description><category></category></item><item><title><![CDATA[什么是前端路由?]]></title><link>https://blog.youkuaiyun.com/yanggreater/article/details/83047971</link><guid>https://blog.youkuaiyun.com/yanggreater/article/details/83047971</guid><author>yanggreater</author><pubDate>Sun, 14 Oct 2018 16:05:27 +0800</pubDate><description><![CDATA[   路由分为前端路由和后端路由，但是后端路由如果是页面内容比较多，那么由于请求时间问题，就会导致页面出现暂时性的白页（也就是所谓的卡顿），那么什么是前端路由，前端路由说白了就是t通过hashchange事件监听url地址中锚点的变化，做到不更新页面的内容替换，替换相信大家都明白，同一个页面，内容改变而已，下面是前端路由通过js实现其原理;


&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;...]]></description><category></category></item><item><title><![CDATA[vue、vuex、vue-router结合的电商网站]]></title><link>https://blog.youkuaiyun.com/yanggreater/article/details/82429197</link><guid>https://blog.youkuaiyun.com/yanggreater/article/details/82429197</guid><author>yanggreater</author><pubDate>Wed, 05 Sep 2018 21:09:20 +0800</pubDate><description><![CDATA[最近在简单的学习了vue之后，通过实践去理解vue的用法和它的优点。

首先先简单介绍一下文件的目录

components是公共的组件,里面包含cart.vue(购物车)、product.vue(list.vue文件要用到的产品公用组件)、productDetail.vue(产品详情页面)

views文件是视图文件(就是list.vue主页文件)，libs下的utils是一些公共函数，rout...]]></description><category></category></item><item><title><![CDATA[Render函数封装一个可排序的表格组件]]></title><link>https://blog.youkuaiyun.com/yanggreater/article/details/81744177</link><guid>https://blog.youkuaiyun.com/yanggreater/article/details/81744177</guid><author>yanggreater</author><pubDate>Thu, 16 Aug 2018 16:43:49 +0800</pubDate><description><![CDATA[主要思路:

     　在v-table组件props接受两个参数，一个就是有多少列columns(数组),另一个就是data(数组),同时又简单的添加一个stripe是否给表格设置一个简单的样式.如下图：



接下来就是render主要思想：在构造元素时，首先要构造标题(&amp;lt;th&amp;gt;)，那么就要循环父组件传来的columns数组，不断的遍历里面的对象循环显示(但是在有排序功能的需要再...]]></description><category></category></item><item><title><![CDATA[通过Render函数认识v-model]]></title><link>https://blog.youkuaiyun.com/yanggreater/article/details/81632581</link><guid>https://blog.youkuaiyun.com/yanggreater/article/details/81632581</guid><author>yanggreater</author><pubDate>Mon, 13 Aug 2018 16:52:25 +0800</pubDate><description><![CDATA[在Vue中，我们都知道v-model是用来双向绑定数据的，那么它的具体工作原理是什么呢？

其实v-model指令是一个prop:value和event:input组合使用的语法糖,下面是通过render函数实现的v-model效果



createElement 中的domProps选项是DOM的属性，代表我创造的input输入框value值的来源,

                    ...]]></description><category></category></item><item><title><![CDATA[Vue开源库iview中折叠面板]]></title><link>https://blog.youkuaiyun.com/yanggreater/article/details/81627046</link><guid>https://blog.youkuaiyun.com/yanggreater/article/details/81627046</guid><author>yanggreater</author><pubDate>Mon, 13 Aug 2018 11:58:17 +0800</pubDate><description><![CDATA[　　　首先，整个Collapse组件统一由collapse.vue管理,它的模板中包含一个插槽,给每一个面板提供空间，同时collapse.vue是整个组件的管理者，它将决定面板的显示状态（即：在collapse.vue文件中修改panel的数据）。



　　　而panel.vue只需要通过数据来驱动DOM（这也正是vue的精髓所在），在panel.vue文件中只需要在标题的div上添加上一个点...]]></description><category></category></item><item><title><![CDATA[node代码中的一些问题]]></title><link>https://blog.youkuaiyun.com/yanggreater/article/details/80064515</link><guid>https://blog.youkuaiyun.com/yanggreater/article/details/80064515</guid><author>yanggreater</author><pubDate>Tue, 24 Apr 2018 14:55:10 +0800</pubDate><description><![CDATA[1 、解决跨域访问     命令行 ：npm install cors --save      app.js代码中：var cors = require('cors');                    app.use(cors());2、解决req.body undefined问题:       npm install body-parser 安装依赖       app.js 代码中添加...]]></description><category></category></item><item><title><![CDATA[服务器的操作和连接]]></title><link>https://blog.youkuaiyun.com/yanggreater/article/details/80054007</link><guid>https://blog.youkuaiyun.com/yanggreater/article/details/80054007</guid><author>yanggreater</author><pubDate>Mon, 23 Apr 2018 17:58:18 +0800</pubDate><description><![CDATA[FileZillaClient 就是用来给服务器传数据的Xshell 5 是用来连接服务器的，还可以用git上的ssh直接连接服务器对于连接服务器的命令：    cd /进入根目录    cd ..进入上级目录    cd ../..进入上两级目录    ll 是对当前目录的文件进行显示    vim 文件名  是直接对文件编辑 当进入到文件编辑界面时 按下i键 直接可以在远程编辑和改动  再次按...]]></description><category></category></item><item><title><![CDATA[事件冒泡]]></title><link>https://blog.youkuaiyun.com/yanggreater/article/details/78831573</link><guid>https://blog.youkuaiyun.com/yanggreater/article/details/78831573</guid><author>yanggreater</author><pubDate>Mon, 18 Dec 2017 11:51:18 +0800</pubDate><description><![CDATA[事件冒泡：
               所谓的事件冒泡就是事件的传递，当子元素事件被人为触发之后，接下来就是自动触发它父级的事件，就这样一直向上传递，它带来的错误一般是不会被发现的，可能都   觉的是没有获取到HTML元素等问题造成的。


处理方法：
               首先是测试是否为事件冒泡导致的问题，我们就在子元素和父元素事件之间添加一个alert(1),将父元素事件]]></description><category></category></item></channel></rss>