<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ToShy的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ToShy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ToShy]]></copyright><item><title><![CDATA[公用单位转换]]></title><link>https://blog.youkuaiyun.com/ToShy/article/details/145684039</link><guid>https://blog.youkuaiyun.com/ToShy/article/details/145684039</guid><author>ToShy</author><pubDate>Mon, 17 Feb 2025 15:23:01 +0800</pubDate><description><![CDATA[【代码】公用单位转换。]]></description><category></category></item><item><title><![CDATA[前端高亮搜索内容]]></title><link>https://blog.youkuaiyun.com/ToShy/article/details/139479471</link><guid>https://blog.youkuaiyun.com/ToShy/article/details/139479471</guid><author>ToShy</author><pubDate>Wed, 05 Jun 2024 18:34:49 +0800</pubDate><description><![CDATA[【代码】前端高亮搜索内容。]]></description><category></category></item><item><title><![CDATA[ahook中常用的一些hooks]]></title><link>https://blog.youkuaiyun.com/ToShy/article/details/123323839</link><guid>https://blog.youkuaiyun.com/ToShy/article/details/123323839</guid><author>ToShy</author><pubDate>Mon, 07 Mar 2022 10:56:07 +0800</pubDate><description><![CDATA[ahooks中一些常用的hooks]]></description><category></category></item><item><title><![CDATA[JS原型与原型链]]></title><link>https://blog.youkuaiyun.com/ToShy/article/details/121040277</link><guid>https://blog.youkuaiyun.com/ToShy/article/details/121040277</guid><author>ToShy</author><pubDate>Fri, 29 Oct 2021 18:19:16 +0800</pubDate><description><![CDATA[构造函数创建对象：
function Person() {

}

var person = new Person();
person.name = 'Kevin';
console.log(person.name) // Kevin

Person 就是一个构造函数，我们使用 new 创建了一个实例对象 person
prototype
每个函数都有一个 prototype 属性
每一个JavaScript对象(null除外)在创建的时候就会与之关联另一个对象，这个对象就是我们所说的原型，每一个对象都会从]]></description><category></category></item><item><title><![CDATA[前端判断空对象{}的几种方法]]></title><link>https://blog.youkuaiyun.com/ToShy/article/details/112321584</link><guid>https://blog.youkuaiyun.com/ToShy/article/details/112321584</guid><author>ToShy</author><pubDate>Thu, 07 Jan 2021 17:02:43 +0800</pubDate><description><![CDATA[1.将json对象转化为json字符串，再判断该字符串是否为"{}"
var data = {};
var b = (JSON.stringify(data) == “{}”);
alert(b);//true
2.for in 循环判断
var obj = {};
var b = function() {
for(var key in obj) {
return false;
}
return true;
}
alert(b());//true
3.jquery的isEmptyObject方法
此方法是j]]></description><category></category></item><item><title><![CDATA[前端开发中的各种宽高整理]]></title><link>https://blog.youkuaiyun.com/ToShy/article/details/109676359</link><guid>https://blog.youkuaiyun.com/ToShy/article/details/109676359</guid><author>ToShy</author><pubDate>Fri, 13 Nov 2020 15:49:52 +0800</pubDate><description><![CDATA[在开发下拉框时，总会遇到了各种需要获取dom高度、滚动的高度、浏览器可视区的高度…，以下对遇到的一些宽高做了一些总结

element.clientHeight:可视区高度，不包括border的高度,如果底部有滚动条也不包括滚动条的高度
element.clientWidth可视区宽度，不包括border的宽度,如果有滚动条也不包括滚动条的宽度
element.offsetHeight：表示自身高度，包括border的值，如果底部有滚动条包括滚动条的高度
element.offsetWidth表示自身高度，]]></description><category></category></item><item><title><![CDATA[react生命周期]]></title><link>https://blog.youkuaiyun.com/ToShy/article/details/109647663</link><guid>https://blog.youkuaiyun.com/ToShy/article/details/109647663</guid><author>ToShy</author><pubDate>Thu, 12 Nov 2020 16:50:54 +0800</pubDate><description><![CDATA[1、生命周期的概念
1.1、概念
在组件创建、组件属性更新、组件被销毁的过程中，总是伴随着各种各样的函数执行，这些在组件特定时期，被触发执行的函数，统称为组件的生命周期函数。
1.2、组件生命周期三个阶段
加载阶段（Mounting）：在组件初始化时执行，有一个显著的特点：创建阶段生命周期函数在组件的一辈子中只执行一次；
更新阶段（Updating）：属性和状态改变时执行，根据组件的state和props的改变，有选择性的触发0次或多次；
卸载阶段（Unmounting）：在组件对象销毁时执行，一辈子只执行]]></description><category></category></item><item><title><![CDATA[防抖debounce与节流throttle]]></title><link>https://blog.youkuaiyun.com/ToShy/article/details/109537023</link><guid>https://blog.youkuaiyun.com/ToShy/article/details/109537023</guid><author>ToShy</author><pubDate>Fri, 06 Nov 2020 18:31:18 +0800</pubDate><description><![CDATA[在进行窗口的resize、scroll，输入框内容校验等操作时，如果事件处理函数调用的频率无限制，会加重浏览器的负担，导致用户体验非常糟糕。此时我们可以采用debounce（防抖）和throttle（节流）的方式来减少调用频率，同时又不影响实际效果。
一：函数防抖
1、理解：触发高频事件后n秒内函数只会执行一次，如果n秒内高频事件再次被触发，则重新计算时间
2、思路：每次触发事件时都取消之前的延时调用方法
3、实现：
  debounce(func, delay) {
    let timer = nul]]></description><category></category></item><item><title><![CDATA[JS核心知识归纳]]></title><link>https://blog.youkuaiyun.com/ToShy/article/details/109464649</link><guid>https://blog.youkuaiyun.com/ToShy/article/details/109464649</guid><author>ToShy</author><pubDate>Tue, 03 Nov 2020 14:16:15 +0800</pubDate><description><![CDATA[JS基础
1.数据类型？
6基本数据类型： Undefined, Null, Boolean, Number, String ,Symbol
引用类型： Array Object Date Function
区别：
基本类型值保存在栈空间，我们通过按值来访问的。
引用类型，的值是对象，栈内存中存放地址指向堆内存中的对象。是按引用访问的。栈内存中存放的
只是该对象的访问地址，在堆内存中为这个值分配空间。
1.基本数据类型不可以添加/删除属性和方法；
2.复制的方式不同；引用类型复制的时候，复制的是指针，2个变]]></description><category></category></item><item><title><![CDATA[箭头函数简单使用]]></title><link>https://blog.youkuaiyun.com/ToShy/article/details/109067545</link><guid>https://blog.youkuaiyun.com/ToShy/article/details/109067545</guid><author>ToShy</author><pubDate>Wed, 14 Oct 2020 10:47:28 +0800</pubDate><description><![CDATA[箭头函数语法： (参数列表) =&gt; { 函数代码块 }
箭头函数简单使用
普通函数：
    const fun = function (num1,num2) {
      return num1 + num2
    }

箭头函数：
    const sum = (num1, num2) =&gt; {
      return num1 + num2
    }

当参数只有一个时可省略括号
    const power = num =&gt; {
      return num * n]]></description><category></category></item><item><title><![CDATA[项目中使用git提交代码]]></title><link>https://blog.youkuaiyun.com/ToShy/article/details/108869163</link><guid>https://blog.youkuaiyun.com/ToShy/article/details/108869163</guid><author>ToShy</author><pubDate>Tue, 29 Sep 2020 15:20:55 +0800</pubDate><description><![CDATA[项目中代码提交基本流程（以master分支说明，实际以具体开发分支为准）
1.git clone master //拉主分支
2.git pull //保证代码是最新的
3.git checkout -b [your branch] //创建并切换到自己的分支
4.编码
5.commit
6.git checkout master //切换到主分支
7.git pull //保证代码是最新的
8.git checkout [your branch] //切换到自己的分支
9.git merge master]]></description><category></category></item><item><title><![CDATA[项目中git常规操作]]></title><link>https://blog.youkuaiyun.com/ToShy/article/details/108868939</link><guid>https://blog.youkuaiyun.com/ToShy/article/details/108868939</guid><author>ToShy</author><pubDate>Tue, 29 Sep 2020 15:18:57 +0800</pubDate><description><![CDATA[项目中git常规操作
一、git clone
远程操作的第一步，通常是从远程主机克隆一个版本库，这时就要用到git clone命令。
$ git clone &lt;版本库的网址&gt;
比如，克隆jQuery的版本库。
$ git clone https://github.com/jquery/jquery.git
该命令会在本地主机生成一个目录，与远程主机的版本库同名。如果要指定不同的目录名，可以将目录名作为git clone命令的第二个参数。
$ git clone &lt;版本库的网址&gt; &l]]></description><category></category></item><item><title><![CDATA[事件冒泡、事件委托和事件捕获]]></title><link>https://blog.youkuaiyun.com/ToShy/article/details/108775455</link><guid>https://blog.youkuaiyun.com/ToShy/article/details/108775455</guid><author>ToShy</author><pubDate>Thu, 24 Sep 2020 16:20:38 +0800</pubDate><description><![CDATA[事件冒泡会从当前触发的事件目标一级一级往上传递，依次触发，直到document为止。
事件捕获会从document开始触发，一级一级往下传递，依次触发，直到真正事件目标为止。
事件委托依靠的就是事件冒泡和捕获的机制。
事件冒泡
一个很简单的例子，生活中，当你玩手机点击一个应用时，同时也代表你点击了手机屏幕。
网页中以下面的这个小例子来说明：
&lt;!DOCTYPE html&gt;
&lt;html&gt;

&lt;head&gt;
  &lt;meta charset="UTF-8"&gt;
  &l]]></description><category></category></item><item><title><![CDATA[关于Flex 布局]]></title><link>https://blog.youkuaiyun.com/ToShy/article/details/108774726</link><guid>https://blog.youkuaiyun.com/ToShy/article/details/108774726</guid><author>ToShy</author><pubDate>Thu, 24 Sep 2020 15:21:33 +0800</pubDate><description><![CDATA[Flex 布局
网页布局（layout）是CSS的一个重点应用。
布局的传统解决方案，基于盒状模型，依赖 display属性 + position属性 + float属性。它对于那些特殊布局非常不方便，比如，垂直居中就不容易实现。
一、Flex布局是什么？
Flex是Flexible Box的缩写，意为”弹性布局”，用来为盒状模型提供最大的灵活性。
任何一个容器都可以指定为Flex布局。
.box{
display: flex;
}
行内元素也可以使用Flex布局。
.box{
display: inlin]]></description><category></category></item><item><title><![CDATA[http常见状态码]]></title><link>https://blog.youkuaiyun.com/ToShy/article/details/108338124</link><guid>https://blog.youkuaiyun.com/ToShy/article/details/108338124</guid><author>ToShy</author><pubDate>Tue, 01 Sep 2020 12:00:33 +0800</pubDate><description><![CDATA[http常见状态码
一、2开头状态码
2xx (成功)表示成功处理了请求的状态代码。
常见：200（成功）表示服务器成功处理了请求的状态码，通常正常访问返回。
二、3开头状态码
3xx (重定向) 表示要完成请求，需要进一步操作。 通常，这些状态代码用来重定向。
常见：304 (未修改) 自从上次请求后，请求的网页未修改过。 服务器返回此响应时，不会返回网页内容。
三、4开头状态码
4xx(请求错误) 这些状态代码表示请求可能出错，妨碍了服务器的处理。
常见：
1、400 (错误请求) 服务器不理解请求的语]]></description><category></category></item></channel></rss>