<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[myboke1的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/myboke1</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; myboke1]]></copyright><item><title><![CDATA[作用域和闭包]]></title><link>https://blog.youkuaiyun.com/myboke1/article/details/85683843</link><guid>https://blog.youkuaiyun.com/myboke1/article/details/85683843</guid><author>myboke1</author><pubDate>Thu, 03 Jan 2019 19:34:20 +0800</pubDate><description><![CDATA[每个JavaScript函数都是一个对象，对象中有些属性我们可以访问，但是有些不可以，这些属性仅供JavaScript引擎存取，[[scope]]就是其中一个。

[[scope]]指的就是我们所说的作用域链，其中存储了运行期上下文的集合

一个函数被定义的时候，他的作用域链中存放着全局的变量对象，当函数开始被执行的时候，就会创建一个执行期上下文，放在作用域链的第一位，也就是先在自己的执行期上下文...]]></description><category></category></item><item><title><![CDATA[清除浮动的几种方法]]></title><link>https://blog.youkuaiyun.com/myboke1/article/details/79796924</link><guid>https://blog.youkuaiyun.com/myboke1/article/details/79796924</guid><author>myboke1</author><pubDate>Wed, 02 Jan 2019 21:18:47 +0800</pubDate><description><![CDATA[父级不浮动，子级浮动后，父级无法包住子级而造成布局的混乱，如何清除浮动呢，以下给出几种清除浮动的方法供参考。

清除浮动的方式，总结了一下，大概有如下几类：

结尾空元素或者after等伪元素或者br 来clear
	父元素同样浮动
	父元素设置overflow为hidden或者auto
	父元素display：table         display：flex；也可以完成清浮...]]></description><category></category></item><item><title><![CDATA[js DOM]]></title><link>https://blog.youkuaiyun.com/myboke1/article/details/85254971</link><guid>https://blog.youkuaiyun.com/myboke1/article/details/85254971</guid><author>myboke1</author><pubDate>Wed, 26 Dec 2018 19:40:42 +0800</pubDate><description><![CDATA[DOM描绘了一个层次化的节点树，允许开发人员添加、移除和修改页面的某一部分。

DOM可以把HTML文档变成一个由多层次节点构成的结构。

节点分为12种类型，每种类型表示文档不同的标记和信息，每个节点拥有自己的特点，数据和方法

文档节点是每个文档的根节点，文档节点只有一个子节点叫文档元素，即&amp;lt;html&amp;gt;元素

每个文档只能有一个文档元素，在HTML页面中，文档元素始终都是HTML元...]]></description><category></category></item><item><title><![CDATA[js  VS   jQuery]]></title><link>https://blog.youkuaiyun.com/myboke1/article/details/85233255</link><guid>https://blog.youkuaiyun.com/myboke1/article/details/85233255</guid><author>myboke1</author><pubDate>Tue, 25 Dec 2018 14:53:18 +0800</pubDate><description><![CDATA[js获取DOM元素的八种方法：

1、通过ID获取：getElementById 返回一个元素，上下文只能是document

2、通过name属性获取：getElementsByName  返回一组元素，上下文必须是documet

3、通过标签名获取:getElementsByTagName  返回一组元素 ，上下文可以是document，也可以是一个元素

4、通过类名获取:g...]]></description><category></category></item><item><title><![CDATA[ajax基础]]></title><link>https://blog.youkuaiyun.com/myboke1/article/details/85138087</link><guid>https://blog.youkuaiyun.com/myboke1/article/details/85138087</guid><author>myboke1</author><pubDate>Fri, 21 Dec 2018 21:33:46 +0800</pubDate><description><![CDATA[Ajax技术的核心是XMLHttpRequset对象（简称XHR），XHR为向服务器发送请求和解析服务器响应提供了流畅的接口，能够以异步的方式从服务器取得更多信息，意味着用户单机后，可以不必刷新页面也能取得新数据。

要求你的js文件，HTML文件，要读取的文件一定是统一的字符集编码

要注意阻止缓存。原理：请求的文件的url一直在变就可以阻止缓存

ajax（‘aaa.txt?t=’+new D...]]></description><category></category></item><item><title><![CDATA[ES6的新特性]]></title><link>https://blog.youkuaiyun.com/myboke1/article/details/85161212</link><guid>https://blog.youkuaiyun.com/myboke1/article/details/85161212</guid><author>myboke1</author><pubDate>Fri, 21 Dec 2018 20:07:21 +0800</pubDate><description><![CDATA[ECMAScript和JavaScript的关系：

前者是后者的规格，后者是前者的一种实现。

Babel是一个广为使用的ES6转码器，可以将ES6代码转为ES5代码，从而在浏览器或其他执行环境执行。

ES6新增了let命令，用于声明变量。其用法类似于var，但是所声明的变量只在let命令所在的代码块内有效。

let不像var那样会发生“变量提升”现象，所以变量一定要在声明后使用，否则报错。...]]></description><category></category></item><item><title><![CDATA[em，rem，px的区别]]></title><link>https://blog.youkuaiyun.com/myboke1/article/details/85015908</link><guid>https://blog.youkuaiyun.com/myboke1/article/details/85015908</guid><author>myboke1</author><pubDate>Sat, 15 Dec 2018 17:17:37 +0800</pubDate><description><![CDATA[css单位中px，em，rem之间的区别和用法

px（绝对长度单位）

px是像素，可以设置宽高，字体的大小。像素px是相对于显示器屏幕分辨率而言的

em（相对长度单位）

浏览器的默认字体是16px,1em = 16px ，以此类推计算12px=0.75em，10px=0.625em，2em=32px；这样使用很复杂，很难很好的与px进行对应,也导致书写、使用、视觉的复杂(0.75em、0....]]></description><category></category></item><item><title><![CDATA[标准盒模型和IE盒模型]]></title><link>https://blog.youkuaiyun.com/myboke1/article/details/85008830</link><guid>https://blog.youkuaiyun.com/myboke1/article/details/85008830</guid><author>myboke1</author><pubDate>Sat, 15 Dec 2018 16:04:13 +0800</pubDate><description><![CDATA[盒模型的组成，由里向外分别是content，padding，border，margin

盒子模型在页面中占的实际宽度是：（margin+padding+border）*2 + width，高度同理。

盒模型有标准盒模型和ie盒模型，二者的区别是

标准盒模型的内容大小就是content的大小，而ie盒模型的大小则是content+padding+border总的大小。

通过设置 box-si...]]></description><category></category></item><item><title><![CDATA[css 伪类  伪元素]]></title><link>https://blog.youkuaiyun.com/myboke1/article/details/85005725</link><guid>https://blog.youkuaiyun.com/myboke1/article/details/85005725</guid><author>myboke1</author><pubDate>Fri, 14 Dec 2018 19:12:23 +0800</pubDate><description><![CDATA[伪类：用于向某些选择器添加特殊的效果。

伪元素：用于向某些选择器设置特殊效果

伪类其实弥补了css选择器的不足，用来方便的获取信息

而伪元素本质上是创建了一个虚拟容器，我们可以在其中添加内容或样式

伪类的主要用法：


 a:link{
	color:green;
  }
 a:visited{
	color:red;
 }
 a:hover{
	color:black;
}
 a:act...]]></description><category></category></item><item><title><![CDATA[进程和线程]]></title><link>https://blog.youkuaiyun.com/myboke1/article/details/85003122</link><guid>https://blog.youkuaiyun.com/myboke1/article/details/85003122</guid><author>myboke1</author><pubDate>Fri, 14 Dec 2018 14:42:33 +0800</pubDate><description><![CDATA[进程：是系统进行资源分配和调度的一个独立单位

在多道程序环境下，允许多个程序并发执行，此时它们将失去封闭性，并具有间断性，为此引入了进程的概念，以便更好地描述和控制程序的并发执行，实现操作系统的并发性和共享性。

进程的特征：

1、动态性。进程是程序的一次执行，有创建，活动，暂停，终止等过程，具有一定的生命周期

2、并发性。同时存在于内存中，能在一段时间内同时进行，提高资源利用率

3、独立...]]></description><category></category></item><item><title><![CDATA[死锁]]></title><link>https://blog.youkuaiyun.com/myboke1/article/details/85002605</link><guid>https://blog.youkuaiyun.com/myboke1/article/details/85002605</guid><author>myboke1</author><pubDate>Fri, 14 Dec 2018 14:15:55 +0800</pubDate><description><![CDATA[死锁：是指多个进程因竞争资源而造成的一种僵局（互相等待），若无外力作用，这些进程将无法向前推进

死锁产生的原因：

1、系统资源的竞争

通常系统中的不剥夺的资源竞争，才可能产生死锁，对可剥夺的资源的竞争是不会引起死锁的。

2、进程推进顺序非法

进程在运行过程中，请求和释放的顺序不当，也同样会导致死锁。

3、死锁产生的必要条件，只要其中任一条件不成立，死锁就不会发生

互斥条件，不剥夺条件...]]></description><category></category></item><item><title><![CDATA[计算机网络TCP/UDP协议——运输层]]></title><link>https://blog.youkuaiyun.com/myboke1/article/details/85001966</link><guid>https://blog.youkuaiyun.com/myboke1/article/details/85001966</guid><author>myboke1</author><pubDate>Fri, 14 Dec 2018 13:48:40 +0800</pubDate><description><![CDATA[运输层主要的两个协议：UDP和TCP协议

UDP协议的特点：

1、不建立连接

2、尽最大努力交付

3、UDP没有拥塞控制

4、首部开销小

5、可以一对一，一对多，多对多

TCP协议的特点：

1、提供面向连接的服务

2、面向字节流

3、提供可靠的服务

4、TCP只能是点对点的

TCP三次握手的过程：

第一次握手：建立连接时，客户端发送syn包到服务器，并进入syn-send...]]></description><category></category></item><item><title><![CDATA[垃圾回收器原理]]></title><link>https://blog.youkuaiyun.com/myboke1/article/details/84995328</link><guid>https://blog.youkuaiyun.com/myboke1/article/details/84995328</guid><author>myboke1</author><pubDate>Thu, 13 Dec 2018 21:35:28 +0800</pubDate><description><![CDATA[垃圾收集机制的原理：找出那些不再继续使用的变量，然后释放其占用的内存。

方法一：标记清除

1、垃圾收集器在运行的时候会给存储在内存中的所有变量都加上标记

2、去除掉环境中的变量以及被环境中的变量引用的变量的标记

3、而在此之后，再被加上标记的变量将被视为准备删除的变量

最后，垃圾收集器完成内存清除工作，销毁这些带标记的值

方法二：引用计数

跟踪记录每个值被引用的次数。

当声明了一个...]]></description><category></category></item><item><title><![CDATA[null，undefined]]></title><link>https://blog.youkuaiyun.com/myboke1/article/details/84994988</link><guid>https://blog.youkuaiyun.com/myboke1/article/details/84994988</guid><author>myboke1</author><pubDate>Thu, 13 Dec 2018 21:17:19 +0800</pubDate><description><![CDATA[undefined类型只有一个值（undefined）。在使用var声明变量但未对其初始化时，这个变量的值就是undefined。


var abc;
alert(abc);//undefined
console.log(typeof abc);//undefined

对为初始化的变量执行typeof操作符会返回undefined，而对于未声明的变量执行typeof操作符同样也会返回undef...]]></description><category></category></item><item><title><![CDATA[js中变量的赋值]]></title><link>https://blog.youkuaiyun.com/myboke1/article/details/84984557</link><guid>https://blog.youkuaiyun.com/myboke1/article/details/84984557</guid><author>myboke1</author><pubDate>Thu, 13 Dec 2018 20:35:53 +0800</pubDate><description><![CDATA[众所周知，js中包含两种数据类型的值：基本数据类型和引用数据类型。

基本数据类型：null，undefined，number，string，boolean

引用数据类型：object

在将一个值赋给变量时，解析器必须确定这个值是基本类型值还是引用类型值。因为基本数据类型是按值访问的，你可以操作保存在变量中实际的值；而引用类型的值是保存在内存中的对象，不能直接操作对象的内存空间，在实际操作对象...]]></description><category></category></item><item><title><![CDATA[如何实现水平垂直居中]]></title><link>https://blog.youkuaiyun.com/myboke1/article/details/79961839</link><guid>https://blog.youkuaiyun.com/myboke1/article/details/79961839</guid><author>myboke1</author><pubDate>Mon, 16 Apr 2018 16:19:19 +0800</pubDate><description><![CDATA[固定宽高的元素，设置垂直居中

法一：用position：absolute和transform：translate来设置（css3的方法）


div{
            width: 200px;
            height: 200px;
            background: green;
            position:absolute;
        ...]]></description><category></category></item><item><title><![CDATA[cookie，session，localStroage，sessionStorage之间的区别]]></title><link>https://blog.youkuaiyun.com/myboke1/article/details/79940506</link><guid>https://blog.youkuaiyun.com/myboke1/article/details/79940506</guid><author>myboke1</author><pubDate>Sun, 15 Apr 2018 17:33:43 +0800</pubDate><description><![CDATA[1、cookie的内容主要包括cookie的值，名字，过期时间，路径，域。若不设置时间，则cookie的生命期为浏览器会话期间，关闭浏览器，会话就会消失。这种生命期为浏览期的cooKie成为会话cookie，会话cookie一般保存在内存里。若设置时间，则cookie被保存在硬盘上，关闭再打开浏览器，cookie值仍然有效，直到超过过期时间。

2、1、cookie数据存放在客户的浏览器上，ses...]]></description><category></category></item><item><title><![CDATA[浏览器兼容性]]></title><link>https://blog.youkuaiyun.com/myboke1/article/details/79661289</link><guid>https://blog.youkuaiyun.com/myboke1/article/details/79661289</guid><author>myboke1</author><pubDate>Sun, 25 Mar 2018 15:12:52 +0800</pubDate><description><![CDATA[浏览器的兼容问题总结

1、在IE6下，子级的宽度会撑开父级的宽度，所以盒模型的宽度一定要设置的精确，否则在IE浏览器下会显示不同。

2、在IE6，7下，元素通过浮动排在同一排，就需要给这行元素都加浮动，而不能一个使用浮动，另一个使用margin-left，否则排在一排的元素会有3px的间距。

3、注意标签的嵌套规则，p标签中不能嵌套块级元素

4、在IE6下，元素的高度如果小于19px，会被...]]></description><category></category></item><item><title><![CDATA[面试题中的算法题]]></title><link>https://blog.youkuaiyun.com/myboke1/article/details/78913620</link><guid>https://blog.youkuaiyun.com/myboke1/article/details/78913620</guid><author>myboke1</author><pubDate>Wed, 27 Dec 2017 16:25:01 +0800</pubDate><description><![CDATA[查找单链表的中间节点：

法一》：遍历一遍整个链表，计算出链表的长度，进而遍历第二遍找出中间位置的数据

法二》：建立两个指针，一个指针一次遍历两个节点，另一个指针一次遍历一个节点，当快指针遍历到空节点时，慢指针指向的位置为链表的中间位置

算法实现：



SListNode*FindMidNode(SListNode*phead)
	{
	SListNode*fas...]]></description><category></category></item><item><title><![CDATA[死锁的解决方案]]></title><link>https://blog.youkuaiyun.com/myboke1/article/details/78913510</link><guid>https://blog.youkuaiyun.com/myboke1/article/details/78913510</guid><author>myboke1</author><pubDate>Wed, 27 Dec 2017 16:18:22 +0800</pubDate><description><![CDATA[死锁产生的条件：
1、互斥条件：资源不能被共享，只能由一个进程使用
2、请求与保持条件：进程已获得了一些资源，但因请求其它资源被阻塞时，对已获得的资源保持不放。
3、不可抢占条件(No
 pre-emption)    ：有些系统资源是不可抢占的，当某个进程已获得这种资源后，系统不能强行收回，只能由进程使用完时自己释放。
4、循环等待条件(Circular
 wait)      ：若]]></description><category></category></item></channel></rss>