<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[flykus的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/flykus</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; flykus]]></copyright><item><title><![CDATA[es6+以后，数组去重的新花样？你学会了吗？]]></title><link>https://blog.youkuaiyun.com/flykus/article/details/141644074</link><guid>https://blog.youkuaiyun.com/flykus/article/details/141644074</guid><author>flykus</author><pubDate>Wed, 28 Aug 2024 16:54:06 +0800</pubDate><description><![CDATA[没有es6+之前，数组去重以来for循环和indexOf实现。es6+之后实现了代码简单，易懂，实用。这就是es6+的魅力所在，简化代码，实现了复杂功能。扩展一下，利用sort函数实现排序。以上几种方法比较常用，建议一定要会使用，如有问题欢迎交流。利用新增set数据结构类型   set结构不允许有重复值。1.双重for循环去重  代码繁多，性能不佳。* 双重for循环去重  代码繁多，性能不佳。redeuce高阶方法值得使用，扩展一下。2.升级一下，简化下代码实现。方法多多，适合做好。]]></description><category></category></item><item><title><![CDATA[浏览器渲染原理和性能优化的理解]]></title><link>https://blog.youkuaiyun.com/flykus/article/details/141280362</link><guid>https://blog.youkuaiyun.com/flykus/article/details/141280362</guid><author>flykus</author><pubDate>Sat, 17 Aug 2024 14:42:52 +0800</pubDate><description><![CDATA[浏览器渲染原理
优化的理解]]></description><category></category></item><item><title><![CDATA[跨域产生的根本原因，以及结局跨域的常用方法]]></title><link>https://blog.youkuaiyun.com/flykus/article/details/141088905</link><guid>https://blog.youkuaiyun.com/flykus/article/details/141088905</guid><author>flykus</author><pubDate>Sat, 10 Aug 2024 12:51:47 +0800</pubDate><description><![CDATA[这点毋庸置疑，由于浏览器发送请求（同源请求，异源请求==请求源），服务器端返回请求（目标源），浏览器接受返回后进行验证，验证通过则可以获取完成。理解了同源策略后，验证这个阶段就会判断是不是同源，从而，验证通不通过，就是跨域问题产生的根本所在。我们都知道浏览器具有同源策略，这就是使得每一种浏览器向服务器请求的过程中就产生了跨域的问题。预检询问是否可以请求，如果可以发送真实请求（也就是简单请求）。流程：浏览器------代理-------服务器。请求ajax（同源请求），不会产生跨域;]]></description><category></category></item><item><title><![CDATA[vuex使用----对比----redux使用]]></title><link>https://blog.youkuaiyun.com/flykus/article/details/101148893</link><guid>https://blog.youkuaiyun.com/flykus/article/details/101148893</guid><author>flykus</author><pubDate>Sun, 22 Sep 2019 11:32:15 +0800</pubDate><description><![CDATA[随着项目的日益增大，维护状态，成为了一件必须且比较繁琐的事情。出现了很多优秀了状态管理工具，
数据管理，组织state
让我们一起来看下，vue中使用vuex和react中使用redux有什么区别。
vuex
参考链接：https://vuex.vuejs.org/zh/
要想使用vuex，在你的项目目录下执行如下命令。


第一步：下载依赖包vuex          npm install -...]]></description><category></category></item><item><title><![CDATA[带你了解------发布订阅者模式的步步进化，层层递进的实现]]></title><link>https://blog.youkuaiyun.com/flykus/article/details/101102370</link><guid>https://blog.youkuaiyun.com/flykus/article/details/101102370</guid><author>flykus</author><pubDate>Sat, 21 Sep 2019 12:08:43 +0800</pubDate><description><![CDATA[发布订阅者模式进化论

基础版本
第一步进化—仅订阅需要信息
第二步进化—通用型发布订阅
第三步进化—解耦发布者和订阅者关系
第四步进化—命名空间（防止代码越来越复杂，形成的全局冲突）

PS：发布订阅者模式可以先订阅，也可以先发布
发布订阅者模式的基础版
只要你绑定过DOM事件，你就已经是一个接触过发布-订阅模式的开发者。接下来一起来看看进化后的模式，如何带来更大的便利。
// 最简单的发布订阅...]]></description><category></category></item><item><title><![CDATA[前端需要的这些你都学会了吗？]]></title><link>https://blog.youkuaiyun.com/flykus/article/details/101077219</link><guid>https://blog.youkuaiyun.com/flykus/article/details/101077219</guid><author>flykus</author><pubDate>Fri, 20 Sep 2019 20:33:54 +0800</pubDate><description><![CDATA[必备之学习
/**
 * 前端学习
 * 1、javascript
 * 2、ES6
 * 3、设计模式
 * 4、算法
 * 5、html、css、html5、css3
 * 6、前端安全
 * 7、http、https、ajax、git
 * 8、vue、vuex、weex、react、redux、taro、uniapp、miniprogram、electron
 * 9、架构
 * 10、n...]]></description><category></category></item><item><title><![CDATA[分享一一一京东taro实现购物车...........]]></title><link>https://blog.youkuaiyun.com/flykus/article/details/101029383</link><guid>https://blog.youkuaiyun.com/flykus/article/details/101029383</guid><author>flykus</author><pubDate>Thu, 19 Sep 2019 17:40:43 +0800</pubDate><description><![CDATA[taro成熟了嘛？坑还多吗？
逻辑实现：
a、点击全选，实现全选
b、单选
c、单选全部选择完时，全选自动勾选
d、全选后，取消一个单选的，则全选自动取消
e、自动计算订单金额


此坑踩了良久啊！
直接上代码，作为参考把！
import Taro, { Component } from '@tarojs/taro';
import { connect } from '@tarojs/redux'...]]></description><category></category></item><item><title><![CDATA[带你了解js中得函数]]></title><link>https://blog.youkuaiyun.com/flykus/article/details/100893226</link><guid>https://blog.youkuaiyun.com/flykus/article/details/100893226</guid><author>flykus</author><pubDate>Mon, 16 Sep 2019 17:01:03 +0800</pubDate><description><![CDATA[函数得隐藏属性
1、arguments
arguments在函数重载和高阶函数中会反复用到。
函数重载：函数名相同，函数的参数列表不同(包括参数个数和参数类型)，根据参数的不同去执行不同的操作。
			举例：
					    function overload(a){
					        console.log('一个参数')
					    }
					    
					    f...]]></description><category></category></item><item><title><![CDATA[运行环境检测]]></title><link>https://blog.youkuaiyun.com/flykus/article/details/100746355</link><guid>https://blog.youkuaiyun.com/flykus/article/details/100746355</guid><author>flykus</author><pubDate>Wed, 11 Sep 2019 19:21:53 +0800</pubDate><description><![CDATA[运行环境检测
1、能力检测，并不是浏览器检测
2、怪癖检测：浏览器的特殊行为
3、用户代理检测：通过检测用户代理的字符串检测客户端
4、识别window
5、手机识别
完整代码：
var client = function(){
    //呈现引擎
    var engine = {
        ie:0,
        gecko:0,
        webkit:0,
      ...]]></description><category></category></item><item><title><![CDATA[一步步完成vuex+plugins的分层配置[随着组件拆分，后期继续。。。]]]></title><link>https://blog.youkuaiyun.com/flykus/article/details/100579857</link><guid>https://blog.youkuaiyun.com/flykus/article/details/100579857</guid><author>flykus</author><pubDate>Fri, 06 Sep 2019 15:49:27 +0800</pubDate><description><![CDATA[vue+webpack+vuex+sass+postcss的项目配置
1、基础步骤不在一步步展示
首先下载项目依赖：
vuex
			**npm install  --save  vuex**

2、项目目录结构如下：

3、新建store文件夹，并新建actions.js  getters.js  mutations.js  state.js  type.js  index.js文件。

4、构...]]></description><category></category></item><item><title><![CDATA[实现多个页面之间通信的常用方式]]></title><link>https://blog.youkuaiyun.com/flykus/article/details/100517694</link><guid>https://blog.youkuaiyun.com/flykus/article/details/100517694</guid><author>flykus</author><pubDate>Tue, 03 Sep 2019 14:42:28 +0800</pubDate><description><![CDATA[websocket协议
localstorage
html5浏览器的新特性

1、websocket
 全双工(full-duplex)通信自然可以实现多个标签页之间的通信，
相信网上通过websocket实现聊天室的教程也不少（用来实现双向通信，客户端和服务端实时通信）
//初始化一个node项目：node init，一路确认就可以,文件夹会自动创建一个package.json文件

监听
/...]]></description><category></category></item><item><title><![CDATA[js数组之常用操作方法]]></title><link>https://blog.youkuaiyun.com/flykus/article/details/100516705</link><guid>https://blog.youkuaiyun.com/flykus/article/details/100516705</guid><author>flykus</author><pubDate>Tue, 03 Sep 2019 14:10:23 +0800</pubDate><description><![CDATA[想要理解一点东西，就必须用自己的语言和思想把一个东西表达出来才行。
下面我们一起来看看数组常用的操作方法都有哪些，怎么去使用。
1、Array.forEach()
将数组中的每个元素执行传进提供的回调函数，此方法没有返回值，直接改变原数组，注意和map方法区分
    let arr = [1, 2, 3, 4, 5]
    num.forEach(x =&gt; x*2)
   // arr ...]]></description><category></category></item><item><title><![CDATA[js之常用设计模式详解]]></title><link>https://blog.youkuaiyun.com/flykus/article/details/100313310</link><guid>https://blog.youkuaiyun.com/flykus/article/details/100313310</guid><author>flykus</author><pubDate>Mon, 02 Sep 2019 16:51:43 +0800</pubDate><description><![CDATA[一、单例模式

定义

保证一个类仅有一个实例，并提供一个访问它的全局访问点

核心

确保只有一个实例，并提供全局访问

实现

假设要设置一个管理员，多次调用也仅设置一次，我们可以使用闭包缓存一个内部变量来实现这个单例
function SetManager(name) {
    this.manager = name;
}

SetManager.prototype.getName = f...]]></description><category></category></item><item><title><![CDATA[使用react-saga来管理store中的effects]]></title><link>https://blog.youkuaiyun.com/flykus/article/details/100154176</link><guid>https://blog.youkuaiyun.com/flykus/article/details/100154176</guid><author>flykus</author><pubDate>Fri, 30 Aug 2019 11:49:21 +0800</pubDate><description><![CDATA[API接口的阻塞和非阻塞
/**
 * 同步call（阻塞，必须完成一个，才能继续下一个yield）
 * 异步fork（无阻塞）
 * 
 * 
 * 监听未来的action   take
 * 
 */

阻塞 / 非阻塞
名称	阻塞
takeEvery	否
takeLatest	否
takeLeading	否
throttle	否
take	是
take(channel)	有时 (请查看 A...]]></description><category></category></item><item><title><![CDATA[react、taro事件处理之间区别]]></title><link>https://blog.youkuaiyun.com/flykus/article/details/100140781</link><guid>https://blog.youkuaiyun.com/flykus/article/details/100140781</guid><author>flykus</author><pubDate>Thu, 29 Aug 2019 16:44:24 +0800</pubDate><description><![CDATA[1、taro创建自定义组件中，事件处理函数的方法与this：
class Toggle extends React.Component {
  constructor(props) {
    super(props);
    this.state = {isToggleOn: true};
  }
  onClick = (e) =&gt; {
      e.stopPropagation(...]]></description><category></category></item><item><title><![CDATA[Class之语法注意事项]]></title><link>https://blog.youkuaiyun.com/flykus/article/details/100140311</link><guid>https://blog.youkuaiyun.com/flykus/article/details/100140311</guid><author>flykus</author><pubDate>Thu, 29 Aug 2019 16:19:44 +0800</pubDate><description><![CDATA[1、静态方法
2、实例属性的新写法
3、静态属性
4、私有方法和私有属性
5、new.target 属性
类的由来，JavaScript 语言中，生成实例对象的传统方法是通过构造函数。下面是一个例子。
 function Point(x, y) {
      this.x = x;
      this.y = y;
    }
    
    Point.prototype.toString...]]></description><category></category></item><item><title><![CDATA[BOM对象得详细解析]]></title><link>https://blog.youkuaiyun.com/flykus/article/details/100137532</link><guid>https://blog.youkuaiyun.com/flykus/article/details/100137532</guid><author>flykus</author><pubDate>Thu, 29 Aug 2019 14:39:57 +0800</pubDate><description><![CDATA[1、BOM核心对象是window
标识一个浏览器的实例，也是js访问浏览器窗口的一个接口！
有事ES规定的一个Global对象。
全局变量不能通过deleted删除。
直接在window上定义属性可以删除。
 var age = 18;
    window.color = "red";
    //在IE &lt; 9 时抛出错误，其他浏览器返回false
    deleted window....]]></description><category></category></item><item><title><![CDATA[nodejs模块及其作用]]></title><link>https://blog.youkuaiyun.com/flykus/article/details/100090027</link><guid>https://blog.youkuaiyun.com/flykus/article/details/100090027</guid><author>flykus</author><pubDate>Tue, 27 Aug 2019 09:38:37 +0800</pubDate><description><![CDATA[1、nodejs 模块及其作用
assert           为应用程序的单元测试添加断言处理
buffer 	         用于二进制数据的存储与转换
url              用于实现URL字符串的解析与格式化
events           用于为事件处理提供一个基础类
fs               用于操作文件及文件系统
path             用于处理文件...]]></description><category></category></item><item><title><![CDATA[java之IntellijIdea  2018.2工具使用]]></title><link>https://blog.youkuaiyun.com/flykus/article/details/99944069</link><guid>https://blog.youkuaiyun.com/flykus/article/details/99944069</guid><author>flykus</author><pubDate>Tue, 27 Aug 2019 09:33:38 +0800</pubDate><description><![CDATA[安装以及破解java工具IntellijIdea
准备工作
下载安装包 以及 替换文件 idea64.exe.vmoptions、idea.exe.vmoptions和ActivationCode文件，并安装idea！
GitHub地址：https://github.com/flyku/javaIntellijIdea.git
第一步：安装 Intellijidea
第二步：破解
		1、打开安装...]]></description><category></category></item><item><title><![CDATA[理解闭包]]></title><link>https://blog.youkuaiyun.com/flykus/article/details/100062855</link><guid>https://blog.youkuaiyun.com/flykus/article/details/100062855</guid><author>flykus</author><pubDate>Sun, 25 Aug 2019 14:23:08 +0800</pubDate><description><![CDATA[关于javascript闭包中的this对象
我们知道，
this对象是运行时基于函数的执行环境绑定的： 在全局函数中， this等于window，
而当函数被作为某个对象的方法调用时， this等于那个对象。《 Javascript高级程序设计》
在下面的例子中， 理解闭包中的this对象。

复制代码
```
***
var name = "The Window";
var object = ...]]></description><category></category></item></channel></rss>