<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[github_39132847的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/github_39132847</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; github_39132847]]></copyright><item><title><![CDATA[js 实现 base58加密/解密（包含中文）]]></title><link>https://blog.youkuaiyun.com/github_39132847/article/details/83624463</link><guid>https://blog.youkuaiyun.com/github_39132847/article/details/83624463</guid><author>github_39132847</author><pubDate>Thu, 01 Nov 2018 18:13:53 +0800</pubDate><description><![CDATA[1. Base58加密原理：和通常base64编码一样，base58编码的作用也是将非可视字符可视化（ASCII化）。但不同的是base58编码去掉了几个看起来会产生歧义的字符，如 0 (零), O (大写字母O), I (大写的字母i) and l (小写的字母L) ，和几个影响双击选择的字符，如/, +。结果字符集正好58个字符(包括9个数字，24个大写字母，25个小写字母)。



2. 直...]]></description><category></category></item><item><title><![CDATA[测试---在mac里安装虚拟机]]></title><link>https://blog.youkuaiyun.com/github_39132847/article/details/82992257</link><guid>https://blog.youkuaiyun.com/github_39132847/article/details/82992257</guid><author>github_39132847</author><pubDate>Wed, 10 Oct 2018 10:08:56 +0800</pubDate><description><![CDATA[首先我是参考下面这个博客，包含一些资源的下载

https://blog.youkuaiyun.com/weixin_41000111/article/details/79428402

然后遇到一些问题，这里说明一下：

上面博客中的windows7是老版本的，身为前端在mac装虚拟机主要是想测浏览器的兼容性，IE11开发者工具里是自带向下兼容到IE5（不含IE6），所以我准备直接在windows7上装ie...]]></description><category></category></item><item><title><![CDATA[js防抖和节流]]></title><link>https://blog.youkuaiyun.com/github_39132847/article/details/82984971</link><guid>https://blog.youkuaiyun.com/github_39132847/article/details/82984971</guid><author>github_39132847</author><pubDate>Tue, 09 Oct 2018 17:37:28 +0800</pubDate><description><![CDATA[防抖和节流目的：都是优化高频率触发执行js代码的一种手段

防抖：上次触发事件和这次触发之间满足一定的空闲时间，js方法才执行一次

例如：

1、生活场景：公车司机在站牌，当前有人不断的上车（规定时间内触发事件超过一次看做不间断触发），司机就不会开走（执行），如果有一段空闲时间没人上车了，司机就会开走（执行）。

2、业务场景：

A：百度搜索。一般搜索绑定输入事件（每次触发输入事件都会触发），...]]></description><category></category></item><item><title><![CDATA[js---ES6 箭头函数的this指向]]></title><link>https://blog.youkuaiyun.com/github_39132847/article/details/80164815</link><guid>https://blog.youkuaiyun.com/github_39132847/article/details/80164815</guid><author>github_39132847</author><pubDate>Wed, 02 May 2018 12:49:41 +0800</pubDate><description><![CDATA[普通函数的this指向看的是：1.调用者2.有没有call/apply改变this指向3.new改变AO中的this为一个空的对象4.什么都没有，单纯调用函数，this就是window，在自己的AO中。箭头函数的this指向：箭头函数在定义时执行器上下文的this的指向（不具有块级作用域），即会取当前的函数的作用域链上的this，忽略块级作用域中的this  function haha(){
  ...]]></description><category></category></item><item><title><![CDATA[js---ES6 let和var]]></title><link>https://blog.youkuaiyun.com/github_39132847/article/details/79882280</link><guid>https://blog.youkuaiyun.com/github_39132847/article/details/79882280</guid><author>github_39132847</author><pubDate>Tue, 10 Apr 2018 20:27:00 +0800</pubDate><description><![CDATA[1.let和varlet:有块级作用域，必须先声明再使用变量（不存在声明提前），不允许重复声明。        let arr=[];
        for (var a = 0; a &amp;lt; 10; a++) {
            arr[a]=function(){
                console.log(a);
            };
        }

 ...]]></description><category></category></item><item><title><![CDATA[js---js时间线（浏览器解析过程）]]></title><link>https://blog.youkuaiyun.com/github_39132847/article/details/79815785</link><guid>https://blog.youkuaiyun.com/github_39132847/article/details/79815785</guid><author>github_39132847</author><pubDate>Wed, 04 Apr 2018 13:00:07 +0800</pubDate><description><![CDATA[1、创建Document对象，开始解析web界面。document.readyState='loading'。2、遇到link外部css，创建线程加载，并继续原线程的解析。3、遇到外部js文件，并没设有async/defer的属性，浏览器正常加载js（阻塞），等js加载完成再执行下面的内容。4、遇到外部js文件，但是设有async/defer的属性，浏览器创建新的线程进行加载，原线程继续自己的行为...]]></description><category></category></item><item><title><![CDATA[js---DOM节点]]></title><link>https://blog.youkuaiyun.com/github_39132847/article/details/79809126</link><guid>https://blog.youkuaiyun.com/github_39132847/article/details/79809126</guid><author>github_39132847</author><pubDate>Tue, 03 Apr 2018 21:40:51 +0800</pubDate><description><![CDATA[一、获得元素:1.getElementsByTagName()----所有浏览器都有这个方法，没兼容性问题2.getElementById()---IE8.0以下，不区分Id的大小写，也就是说也没兼容性问题3.getElementsByClassName()---IE9.0以下没有这个方法，存在兼容性问题。4.getElementsByName()---name属性，Input的name属性，并不...]]></description><category></category></item><item><title><![CDATA[js---严格模式]]></title><link>https://blog.youkuaiyun.com/github_39132847/article/details/79808699</link><guid>https://blog.youkuaiyun.com/github_39132847/article/details/79808699</guid><author>github_39132847</author><pubDate>Tue, 03 Apr 2018 20:52:30 +0800</pubDate><description><![CDATA[基于es3.0和es5.0新增的方法使用的，es3.0和es5.0产生矛盾的地方在严格模式下就是采用的es5.0，否则js解析采用es3.0注意：&quot;use strict&quot;要放在逻辑的最顶端（代码的最顶端，有作用范围，在函数最顶端就是当前函数采取严格模式）严格模式：1.不允许用with(){}---with可以改变作用域链的结果，极费效率，将obj放在作用域链的顶端，相当于移动了所有原先的AO所以严...]]></description><category></category></item><item><title><![CDATA[css---基础技巧总结]]></title><link>https://blog.youkuaiyun.com/github_39132847/article/details/79802663</link><guid>https://blog.youkuaiyun.com/github_39132847/article/details/79802663</guid><author>github_39132847</author><pubDate>Tue, 03 Apr 2018 16:01:53 +0800</pubDate><description><![CDATA[一、书写css样式：1.优先写位置---使元素脱离文档流的功能2.再写宽高内外边距等---合模型的内容3.背景颜色，样式4.css3的动画转换等效果目的：浏览器在解析时先重拍再重绘，先写位置可以先确定位置再排版，最后添加附属样式可以修饰。二、常见标签的一些用法a标签的作用：1.超链接2.锚点  常见用法：侧边导航栏固定，通过锚点跳转到指定id的模块&amp;lt;a href=&quot;#id&quot;&amp;gt;&amp;lt;/...]]></description><category></category></item><item><title><![CDATA[js---数组，类数组]]></title><link>https://blog.youkuaiyun.com/github_39132847/article/details/79682143</link><guid>https://blog.youkuaiyun.com/github_39132847/article/details/79682143</guid><author>github_39132847</author><pubDate>Sat, 24 Mar 2018 23:52:59 +0800</pubDate><description><![CDATA[1. 数组 --- 一种特殊的对象a 会改变原数组的API---push unshift pop shift splice sort reversevar arr=[3,5,2,7,1,9,0,3]
//push(需要添加的参数值1,...,参数值n)---向数组末尾添加元素（可以是多个参数，就是向数组添加多个元素）
arr.push(56);console.log(arr)//[3,5,2,7,...]]></description><category></category></item><item><title><![CDATA[js---圣杯模式 ，枚举，如何区分数组和对象，callee]]></title><link>https://blog.youkuaiyun.com/github_39132847/article/details/79671002</link><guid>https://blog.youkuaiyun.com/github_39132847/article/details/79671002</guid><author>github_39132847</author><pubDate>Fri, 23 Mar 2018 21:25:44 +0800</pubDate><description><![CDATA[1. 继承发展史（从a发展到d）a 原型链继承：过多的继承没有用的属性function Grand(){this.grand='grand';this.name='haha'}
function Father(){this.father='father'}
function Son(){this.son='son'}
var grand = new Grand();
Father.prototyp...]]></description><category></category></item><item><title><![CDATA[js---call/apply，this]]></title><link>https://blog.youkuaiyun.com/github_39132847/article/details/79670471</link><guid>https://blog.youkuaiyun.com/github_39132847/article/details/79670471</guid><author>github_39132847</author><pubDate>Fri, 23 Mar 2018 17:59:20 +0800</pubDate><description><![CDATA[1.call/apply作用：改变this指向区别：参数列表不一样，call的参数列表是按实参一个个传，apply是传一个数组arguments例子：function test(){console.log(111)}
test.call();//111 说明test()就等于test.call(); 任何方法都能call

function Person(age,name){
    this.a...]]></description><category></category></item><item><title><![CDATA[js---原型，原型链]]></title><link>https://blog.youkuaiyun.com/github_39132847/article/details/79668013</link><guid>https://blog.youkuaiyun.com/github_39132847/article/details/79668013</guid><author>github_39132847</author><pubDate>Fri, 23 Mar 2018 17:23:06 +0800</pubDate><description><![CDATA[1.原型---Person.prototype,在函数Person定义的时候就产生了，是所有由Person构造函数构造出的对象的祖先。祖先意味着子代可以继承他的属性。而这个Person.prototype等待着new时将自己放到this的__proto__中。function Person(){
  //var this={__proto__:Person.prototype}
  ....//中...]]></description><category></category></item><item><title><![CDATA[js---包装类]]></title><link>https://blog.youkuaiyun.com/github_39132847/article/details/79666246</link><guid>https://blog.youkuaiyun.com/github_39132847/article/details/79666246</guid><author>github_39132847</author><pubDate>Fri, 23 Mar 2018 15:01:32 +0800</pubDate><description><![CDATA[1.包装类----js以new的方式抽象出一类相同特征的对象的集合，就是说new会产生一个由构造函数丰满后的对象function Person(){
    //var this={}  系统在new的时候隐式产生
    ...//函数里的代码
    //return this  系统在new的时候隐式产生
}
var person = new Person();//由于new的时候，会返回一...]]></description><category></category></item><item><title><![CDATA[js---作用域链，立即执行函数，闭包]]></title><link>https://blog.youkuaiyun.com/github_39132847/article/details/79638884</link><guid>https://blog.youkuaiyun.com/github_39132847/article/details/79638884</guid><author>github_39132847</author><pubDate>Wed, 21 Mar 2018 14:32:07 +0800</pubDate><description><![CDATA[1.作用域链----函数定义时会获得父级的作用域链的值放在自己的[[Scopes]]属性中，[[Scopes]]是系统自带的隐式属性，通过console.dir(函数名)   可以查看这个函数的作用域链，即[[Scopes]]。任何函数都至少会有Global的作用域，嵌套越深，作用域链越长。当执行函数的前一刻时，会生成当前函数的独一无二的AO，添加到自己的作用域链中。注意：任何函数只能使用自己作用...]]></description><category></category></item><item><title><![CDATA[js---预编译]]></title><link>https://blog.youkuaiyun.com/github_39132847/article/details/79623885</link><guid>https://blog.youkuaiyun.com/github_39132847/article/details/79623885</guid><author>github_39132847</author><pubDate>Tue, 20 Mar 2018 13:11:09 +0800</pubDate><description><![CDATA[js作为解释型语言执行的时候分为三步1.通篇扫描，有没有基础语法错误。2.预编译，发生在函数执行前一刻。3.解释执行。预编译的步骤：1.创建AO（活动对象，即作用域，执行期上下文，任何函数每次执行都会产生属于当前执行的自己的独一无二的AO，同一个函数执行时会产生不同的AO，a();---AO    a();---AO  执行两次a会产生两个a的AO，但是单线程的js会等一个执行结束（AO是即时存在...]]></description><category></category></item><item><title><![CDATA[js---函数参数]]></title><link>https://blog.youkuaiyun.com/github_39132847/article/details/79594282</link><guid>https://blog.youkuaiyun.com/github_39132847/article/details/79594282</guid><author>github_39132847</author><pubDate>Sat, 17 Mar 2018 18:19:59 +0800</pubDate><description><![CDATA[函数的参数分为形参和实参add(1,2,3)----运行函数的时候给的值是实参function add(a,b){}----声明函数的时候，是形参function add(a,b,c,d){
  console.log(arguments.length);//实参个数  3
  console.log(add.length);//形参的个数  4
  console.log(add.name);/...]]></description><category></category></item><item><title><![CDATA[js---数据类型转换，typeof]]></title><link>https://blog.youkuaiyun.com/github_39132847/article/details/79591857</link><guid>https://blog.youkuaiyun.com/github_39132847/article/details/79591857</guid><author>github_39132847</author><pubDate>Sat, 17 Mar 2018 16:04:06 +0800</pubDate><description><![CDATA[js中有六种数据类型，包括五种基本数据类型（Number,String,Boolean,Undefined,Null）,和一种复杂数据类型（Object）。1.typeof------判断后返回的都是字符串类型（&quot;string&quot;  &quot;number&quot; &quot;undefined&quot;  &quot;object&quot;  &quot;function&quot;  &quot;boolean&quot;）var a=1,b={},c=[1,2,3],d=']]></description><category></category></item><item><title><![CDATA[js-与或运算符的真正原理]]></title><link>https://blog.youkuaiyun.com/github_39132847/article/details/79589397</link><guid>https://blog.youkuaiyun.com/github_39132847/article/details/79589397</guid><author>github_39132847</author><pubDate>Sat, 17 Mar 2018 10:23:01 +0800</pubDate><description><![CDATA[1.与----并且----&amp;amp;&amp;amp;第一个表达式为真，会继续执行第二个表达式，当所有表达式都为真的时候，会返回最后一个表达式的值；当遇到表达式为假的时候，会立即返回当前表达式的值，并停止向后执行表达式的行为，即当前语句结束。var a=0&amp;amp;&amp;amp;2;
console.log(a);//0
a=1&amp;amp;&amp;amp;3;
console.log(a);//3
a=2&amp;amp;&amp;...]]></description><category></category></item><item><title><![CDATA[js----for循环使用技巧]]></title><link>https://blog.youkuaiyun.com/github_39132847/article/details/79589212</link><guid>https://blog.youkuaiyun.com/github_39132847/article/details/79589212</guid><author>github_39132847</author><pubDate>Sat, 17 Mar 2018 10:04:00 +0800</pubDate><description><![CDATA[for(var i=0;i&amp;lt;10;i++){   console.log(i);//0,1,2,3...,9}for((1);(2);(3)){(4)}-----红色标记表示这里的表达式，方便叙述。先运行（1），再判断（2）是否为true,为true再执行（4）；第一轮结束之后，执行（3），再判断（2）是否为true,为true再执行（4）；执行（3），再判断（2）是否为true,为true...]]></description><category></category></item></channel></rss>