<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lg7955的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lg7955</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lg7955]]></copyright><item><title><![CDATA[事件订阅派发模式]]></title><link>https://blog.youkuaiyun.com/lg7955/article/details/134081389</link><guid>https://blog.youkuaiyun.com/lg7955/article/details/134081389</guid><author>lg7955</author><pubDate>Fri, 27 Oct 2023 17:50:54 +0800</pubDate><description><![CDATA[思路：定义一个state用来存贮订阅事件和事件对应的回调函数。on方法用来订阅事件和添加对应的回调。emit方法则是用来派发事件，并且执行事件对应的回调函数队列。off方法则是用来取消订阅事件的回调函数或整个事件。once方法是只订阅一次事件。]]></description><category></category></item><item><title><![CDATA[instanceof 的原理以及手写实现]]></title><link>https://blog.youkuaiyun.com/lg7955/article/details/134042981</link><guid>https://blog.youkuaiyun.com/lg7955/article/details/134042981</guid><author>lg7955</author><pubDate>Wed, 25 Oct 2023 20:46:06 +0800</pubDate><description><![CDATA[众所周知，js数据类型分为基本数据类型与复杂数据类型，而 instanceof 便是用来检测复杂数据类型，返回一个布尔值。其原理便是，检测构造函数的原型是否出现在检测对象的原型链上。]]></description><category></category></item><item><title><![CDATA[js实现复制文本]]></title><link>https://blog.youkuaiyun.com/lg7955/article/details/126648549</link><guid>https://blog.youkuaiyun.com/lg7955/article/details/126648549</guid><author>lg7955</author><pubDate>Thu, 01 Sep 2022 17:56:17 +0800</pubDate><description><![CDATA[js实现复制文本。]]></description><category></category></item><item><title><![CDATA[标签名与：hover前是否有空格]]></title><link>https://blog.youkuaiyun.com/lg7955/article/details/122999038</link><guid>https://blog.youkuaiyun.com/lg7955/article/details/122999038</guid><author>lg7955</author><pubDate>Fri, 18 Feb 2022 11:12:33 +0800</pubDate><description><![CDATA[#submitPassed:hover{
      box-shadow: 0 1px 2px -2px rgb(0 0 0 / 16%), 0 3px 6px 0 rgb(0 0 0 / 12%), 0 5px 12px 4px rgb(0 0 0 / 9%);
    }

不加空格，影响的是自身或其他相邻兄弟元素， 写的是一个划过出现盒阴影效果

#submitPassed :hover {
      box-shadow: 0 1px 2px -2px rgb(0 0 0 / 16%), 0 .]]></description><category></category></item><item><title><![CDATA[实现一个点击保存内容到粘贴板上的功能]]></title><link>https://blog.youkuaiyun.com/lg7955/article/details/122998531</link><guid>https://blog.youkuaiyun.com/lg7955/article/details/122998531</guid><author>lg7955</author><pubDate>Fri, 18 Feb 2022 10:48:01 +0800</pubDate><description><![CDATA[const copy = () =&gt; {
      const copyValue = document.getElementById('copyValue')
      // 如果想要选中内容是input标签包裹的则不需要重新生成input
      const input = document.createElement('input');
      input.setAttribute('readonly', 'readonly');
      input.setAttribute..]]></description><category></category></item><item><title><![CDATA[模糊搜索，搜索框值改变发起请求后，返回的值先后顺序不一致]]></title><link>https://blog.youkuaiyun.com/lg7955/article/details/122479446</link><guid>https://blog.youkuaiyun.com/lg7955/article/details/122479446</guid><author>lg7955</author><pubDate>Thu, 13 Jan 2022 18:20:18 +0800</pubDate><description><![CDATA[bug原因及分析：
在做视频会议项目中， 遇到一个搜索框的bug, 具体是搜索框值发生改变，就会发起请求，返回下拉框选项，然后就会遇到一种情况，搜索框值连续改变了三次， 因为三次返回值的大小不同，第三次请求返回值先来了，导致我想要的下拉框选项不对应。
bug解决方案：
先定一个全局变量
let searchIndex = 0;
然后再onSearch搜索请求中定义一个局部变量
const valueIndex = ++ searchIndex;
发起搜索请求， 在请求回调中if(searchIndex ==]]></description><category></category></item><item><title><![CDATA[react实现设置组合快捷键]]></title><link>https://blog.youkuaiyun.com/lg7955/article/details/119897671</link><guid>https://blog.youkuaiyun.com/lg7955/article/details/119897671</guid><author>lg7955</author><pubDate>Thu, 13 Jan 2022 17:44:17 +0800</pubDate><description><![CDATA[分析下设置快捷键：
1.首先组合快捷键第一个必须为功能键（shift、ctrl、alt）且最后一个键不能为功能键，
2.组合键的键数大于1（shift+V），小于等于4(ctrl+shift+alt+A)
3.当出现功能键+普通键+功能键时（如shift+A+alt）时，应替换为功能键+功能键+（shift+alt+）,就是功能键必须相连，不相连最后一个功能键把普通键替换掉，
4.当出现不符合规则的组合时需要变回未改变时的状态
state = {
    oldKey: 'CTRL+F12',
    ne]]></description><category></category></item><item><title><![CDATA[2021-05-25]]></title><link>https://blog.youkuaiyun.com/lg7955/article/details/117263644</link><guid>https://blog.youkuaiyun.com/lg7955/article/details/117263644</guid><author>lg7955</author><pubDate>Tue, 25 May 2021 20:16:42 +0800</pubDate><description><![CDATA[React引入本地图片的方法

类似于引入外部css样式，先用import引进来，起一个变量名。

然后src={{变量名}}就可以了

]]></description><category></category></item><item><title><![CDATA[关于数组排序方法sort()的理解]]></title><link>https://blog.youkuaiyun.com/lg7955/article/details/115861589</link><guid>https://blog.youkuaiyun.com/lg7955/article/details/115861589</guid><author>lg7955</author><pubDate>Mon, 19 Apr 2021 12:44:08 +0800</pubDate><description><![CDATA[我在接触数组排序方法的时候看到这样一组代码：


var arr = [10, 4, 50, 32];
console.log(arr.sort((a, b) =&gt; a - b));

然后他就按从小到大的顺序排好了；就很神奇。当时刚学没想那么深入，没弄懂return a-b到底是个什么意思；

今天心血来潮，就各种百度，现在总算有个大致的理解了。

我的理解是他是个冒泡排序，，内置了一个匿名的比较函数compare(a,b)，遍历数组，a,b为连续的两个数、，a-b,如果&gt;0则交换a,b的位置]]></description><category></category></item><item><title><![CDATA[数组随机排序的两种实现方法]]></title><link>https://blog.youkuaiyun.com/lg7955/article/details/115861282</link><guid>https://blog.youkuaiyun.com/lg7955/article/details/115861282</guid><author>lg7955</author><pubDate>Mon, 19 Apr 2021 11:41:14 +0800</pubDate><description><![CDATA[1.利用数组中的sort()方法：


 var arr = [10, 4, 50, 32];
 console.log(arr.sort((a, b) =&gt; a - b));

2.Fisher-Yates Shuffle，复杂度为O(n)。从后向前遍历，不断将当前元素与随机位置的元素（除去已遍历的部分）进行交换


function shuffle(arr) { 
    let m = arr.length; 
    while (m &gt; 1){ 
        let index =]]></description><category></category></item><item><title><![CDATA[JS 去除数组重复元素]]></title><link>https://blog.youkuaiyun.com/lg7955/article/details/114333791</link><guid>https://blog.youkuaiyun.com/lg7955/article/details/114333791</guid><author>lg7955</author><pubDate>Wed, 03 Mar 2021 21:31:53 +0800</pubDate><description><![CDATA[第一种
var arr=[1,6,1,5,5,5,1,1,5,5,5,5,55,];
function norepeat(){
for(var i=0;i&lt;arr.length;i++){
for(var j=arr.length-1;j&gt;=i+1;j–){
if(arr[i]==arr[j]){
arr.splice(j,1)
console.log(j)
}
}
}
}
norepeat(arr);
document.write(arr)
第二种
var arr=[1,6,1,5,5,5,1]]></description><category></category></item><item><title><![CDATA[JS 作用域]]></title><link>https://blog.youkuaiyun.com/lg7955/article/details/114259619</link><guid>https://blog.youkuaiyun.com/lg7955/article/details/114259619</guid><author>lg7955</author><pubDate>Mon, 01 Mar 2021 13:10:56 +0800</pubDate><description><![CDATA[作用域：变量或者函数能够被访问到的范围。分为全局作用域和局部作用域
一，全局作用域
（1）最外层函数或者最外层函数外通过var声明的变量；如：
var a = 10;//全局变量
function val(){   //全局函数
console.log(a)
}
（2）在函数内部，不通过var声明的变量（不是真正意义上的全局变量）；如： function val(){
a = 10
}
val()
console.log(a)  //打印的值为10，
之所以不是真正意义上的全局变量的原因是：当 consol]]></description><category></category></item><item><title><![CDATA[js类型转换]]></title><link>https://blog.youkuaiyun.com/lg7955/article/details/114178029</link><guid>https://blog.youkuaiyun.com/lg7955/article/details/114178029</guid><author>lg7955</author><pubDate>Sat, 27 Feb 2021 16:00:19 +0800</pubDate><description><![CDATA[一.显式转化：借助转型函数实现转换。
1.转化为字符串类型（string）： 直接使用转型函数String（），在小括号内加想要转换的数值或者布尔值就可以。如:


可以看出第一个打印值为数值，而以下的数值，布尔值，undefind，null都被转化为字符串类型了。
2.转换为数值类型 使用转型函数Number将其他类型函数转换为数值类型 。其中空字符串，空格字符串，null会被Number转换为0，undefined专为NaN，当其他类型无法转换成具体数值时，便会打印成NaN。如下图：


3.转化为布尔]]></description><category></category></item><item><title><![CDATA[Mysql安装、配置、优化]]></title><link>https://blog.youkuaiyun.com/lg7955/article/details/103529584</link><guid>https://blog.youkuaiyun.com/lg7955/article/details/103529584</guid><author>lg7955</author><pubDate>Fri, 13 Dec 2019 16:34:33 +0800</pubDate><description><![CDATA[一： MYSQL安装和基本配置

在linux上安装，能够用包管理工具来安装，比較简单：

RedHat 系列：yum -yinstall mysql mysql-server

Debian系列：sudo apt-getinstall mysql mysql-server



安装之后不知道mysql装到哪了怎么办，用whereis mysql 命令来找一下。先找到mysql的默认配置...]]></description><category></category></item><item><title><![CDATA[防火墙和系统安全防护和优化]]></title><link>https://blog.youkuaiyun.com/lg7955/article/details/103519855</link><guid>https://blog.youkuaiyun.com/lg7955/article/details/103519855</guid><author>lg7955</author><pubDate>Fri, 13 Dec 2019 09:43:24 +0800</pubDate><description><![CDATA[如今无论是国家还是企业系统安全尤为重要，所以安全防护就显得特别关键了。

防火墙

防火墙(Firewall)，也称防护墙，是由Check Point创立者Gil Shwed于1993年发明并引入国际互联网(US5606668(A)1993-12-15)。它是一种位于内部网络与外部网络之间的网络安全系统。一项信息安全的防护系统，依照特定的规则，允许或是限制传输的数据通过。在网络中，所谓“防火墙”，...]]></description><category></category></item><item><title><![CDATA[cenos基本信息和ssh]]></title><link>https://blog.youkuaiyun.com/lg7955/article/details/103519460</link><guid>https://blog.youkuaiyun.com/lg7955/article/details/103519460</guid><author>lg7955</author><pubDate>Fri, 13 Dec 2019 08:50:21 +0800</pubDate><description><![CDATA[centos基本信息和ssh
一、 CentOS
1.centos是什么
“CentOS是基于Linux内核的100％免费的操作系统，多用于服务器系统，CentOS的存在是为了提供一个免费的企业级计算平台，并努力与其上游源Red Hat保持100％的二进制兼容性。”

2.CentOS长什么样子？
因为 Windows 系统是可视化的操作界面，所以基本上大家都知道 Windows 大概长什么样子。...]]></description><category></category></item></channel></rss>