<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[github_37360787的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/github_37360787</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; github_37360787]]></copyright><item><title><![CDATA[前端进阶版本 ，性能优化—-防抖、节流、重绘与回流]]></title><link>https://blog.youkuaiyun.com/github_37360787/article/details/115013806</link><guid>https://blog.youkuaiyun.com/github_37360787/article/details/115013806</guid><author>github_37360787</author><pubDate>Thu, 03 Aug 2023 15:18:44 +0800</pubDate><description><![CDATA[防抖：任务频繁触发的情况下，只有任务触发的间隔超过指定间隔的时候，任务才会执行。


/**
 * 防抖函数
 * @author vision
 * @param {执行函数} fn
 * @param {延迟} delay
 */
export function debounce(fn, delay) {
  let timer = null;
  return function() {
    let context = this;
    let arg = arguments;
    clear]]></description><category></category></item><item><title><![CDATA[element-ui table 表头合并]]></title><link>https://blog.youkuaiyun.com/github_37360787/article/details/117808993</link><guid>https://blog.youkuaiyun.com/github_37360787/article/details/117808993</guid><author>github_37360787</author><pubDate>Fri, 11 Jun 2021 11:20:03 +0800</pubDate><description><![CDATA[element-ui table 表头合并方法实操如下：

现在：


期望：


代码：


 &lt;el-table ref="tableRef" v-loading="loadingTab" class="table" :data="tableData" height="100%" 
size="mini" border :span-method="spanMethod" :header-cell-style="headerStyle"&gt;
      &lt;el-table-colum...]]></description><category></category></item><item><title><![CDATA[Chrome浏览器新功能之tab分组]]></title><link>https://blog.youkuaiyun.com/github_37360787/article/details/115415180</link><guid>https://blog.youkuaiyun.com/github_37360787/article/details/115415180</guid><author>github_37360787</author><pubDate>Sat, 03 Apr 2021 13:25:42 +0800</pubDate><description><![CDATA[请先更新Chrome最新版本，当前版本： 89.0.4389.90

具体功能如下

右键点击 Chrome浏览器的tab页：如下



可以自定义分组的名称

合并分组展示如下：



展开如下：








]]></description><category></category></item><item><title><![CDATA[codespaces在线开发应用]]></title><link>https://blog.youkuaiyun.com/github_37360787/article/details/115399360</link><guid>https://blog.youkuaiyun.com/github_37360787/article/details/115399360</guid><author>github_37360787</author><pubDate>Fri, 02 Apr 2021 15:26:57 +0800</pubDate><description><![CDATA[目录

您可以使用 GitHub 上的集成开发环境 (IDE) Codespaces 完全在云端开发。

关于Codespaces

在 Visual Studio Code 中使用代码空间

基本要求

在 Visual Studio Code 中创建代码空间

在 Visual Studio Code 中打开代码空间

在 Visual Studio Code 中删除代码空间



您可以使用 GitHub 上的集成开发环境 (IDE) Codespaces 完全在云端开发。

代码空间可用于使用 G.]]></description><category></category></item><item><title><![CDATA[如何兼容AMD和CMD语法规范]]></title><link>https://blog.youkuaiyun.com/github_37360787/article/details/115339364</link><guid>https://blog.youkuaiyun.com/github_37360787/article/details/115339364</guid><author>github_37360787</author><pubDate>Wed, 31 Mar 2021 00:01:18 +0800</pubDate><description><![CDATA[自定义一个js插件，实现改变div背景颜色

要求：兼容AMD和CMD语法规范！！！

index.html


&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;

&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&gt;
    &lt;meta name="viewport" content="width]]></description><category></category></item><item><title><![CDATA[for in与for of用法及区别]]></title><link>https://blog.youkuaiyun.com/github_37360787/article/details/114591748</link><guid>https://blog.youkuaiyun.com/github_37360787/article/details/114591748</guid><author>github_37360787</author><pubDate>Tue, 09 Mar 2021 17:43:59 +0800</pubDate><description><![CDATA[for in与for of用法及区别

1、


  var arr=[{name:'张三'},{name:'李四'}];
  var obj={name:'张三'};
    for (var i in arr){
        console.log(i)
    }
    for (var i in obj){
        console.log(i)
    }




2、


for (var i of arr){
     console.log(i)
}

for (var i of]]></description><category></category></item><item><title><![CDATA[vue响应式原理源码分析]]></title><link>https://blog.youkuaiyun.com/github_37360787/article/details/114362025</link><guid>https://blog.youkuaiyun.com/github_37360787/article/details/114362025</guid><author>github_37360787</author><pubDate>Sat, 06 Mar 2021 18:55:08 +0800</pubDate><description><![CDATA[vue2.x响应式

基本概念介绍：
Vue框架是如何实现变量的变化侦测的呢？

Object 利用了 Object.defineProperty 进行变量的getter与setter拦截，但数组的实现与 Object 有所不同，下面会从源码层面具体讨论这两种类型的变量如何实现变化侦测。

首先我们需要先了解Vue源码中的三个类：

一、Observer
Observer类负责将复杂类型的变量转化成响应式数据，转化为响应式数据的变量都会带有 '__ob__' 属性，所以 '__ob__' 属性可以作为判断.]]></description><category></category></item><item><title><![CDATA[【转】mac git命令按tab键自动补全]]></title><link>https://blog.youkuaiyun.com/github_37360787/article/details/114450712</link><guid>https://blog.youkuaiyun.com/github_37360787/article/details/114450712</guid><author>github_37360787</author><pubDate>Sat, 06 Mar 2021 18:23:25 +0800</pubDate><description><![CDATA[mac上命令行比windows好用很多，但是git默认按tab键是不会自动补全的，很不爽。下面我们按步骤来介绍怎么做到自动补全。

1.安装home-brew,相应大家装装过了，如果没装，直接去官网看下命令行，copy过来装下就好了。

2.执行brew install bash-completion

3.


if [ -f ~/.git-completion.bash ]; then
. ~/.git-completion.bash
fi


把上面这段代码copy到 ~/.bash_prof...]]></description><category></category></item><item><title><![CDATA[【原】github代码提交后contributions没有记录]]></title><link>https://blog.youkuaiyun.com/github_37360787/article/details/114435295</link><guid>https://blog.youkuaiyun.com/github_37360787/article/details/114435295</guid><author>github_37360787</author><pubDate>Sat, 06 Mar 2021 11:06:01 +0800</pubDate><description><![CDATA[githubcontributions图



commit

如果满足以下所有条件，则提交将显示在您的贡献图上：

用于提交的电子邮件地址与您的GitHub帐户相关联。
	提交是在独立的存储库中进行的，而不是在fork中进行的。
	提交了： 在存储库的默认分支中 在gh-pages分支中（用于具有项目站点的存储库）
参考文献：https://docs.github.com/en/github/setting-up-and-managing-your-github-profile/why-are-my-c.]]></description><category></category></item><item><title><![CDATA[【原】.gitignore 的作用]]></title><link>https://blog.youkuaiyun.com/github_37360787/article/details/114298121</link><guid>https://blog.youkuaiyun.com/github_37360787/article/details/114298121</guid><author>github_37360787</author><pubDate>Wed, 03 Mar 2021 01:21:42 +0800</pubDate><description><![CDATA[.gitignore 文件作用是什么？？

废话不多说！！！ 看下图

当我们项目中某些文件不需要提交时，比如node_modules文件，但是每次提交它都会出现怎么办？



在对应项目目录下，新建一个.gitignore文件，里面列举你不想提交的文件即可，，，



在此git status查看， 就会发现node_modules文件就不会出现了，





项目参考：个人网易云app地址：https://github.com/fuyz/wy-vue
...]]></description><category></category></item><item><title><![CDATA[你真的懂 Promise 吗？]]></title><link>https://blog.youkuaiyun.com/github_37360787/article/details/105787328</link><guid>https://blog.youkuaiyun.com/github_37360787/article/details/105787328</guid><author>github_37360787</author><pubDate>Mon, 27 Apr 2020 11:50:26 +0800</pubDate><description><![CDATA[前言

在异步编程中，Promise 扮演了举足轻重的角色，比传统的解决方案（回调函数和事件）更合理和更强大。可能有些小伙伴会有这样的疑问：2020年了，怎么还在谈论Promise？事实上，有些朋友对于这个几乎每天都在打交道的“老朋友”，貌似全懂,但稍加深入就可能疑问百出，本文带大家深入理解这个熟悉的陌生人—— Promise.

基本用法

1.语法


new Promise( fu...]]></description><category></category></item><item><title><![CDATA[dart-sass 和 node-sass 的区别]]></title><link>https://blog.youkuaiyun.com/github_37360787/article/details/102523308</link><guid>https://blog.youkuaiyun.com/github_37360787/article/details/102523308</guid><author>github_37360787</author><pubDate>Sat, 12 Oct 2019 16:49:23 +0800</pubDate><description><![CDATA[根据sass-lang官方网站的说法：


Dart Sass是Sass的主要实现，这意味着它在其他实现之前先获得了新功能。它快速，易于安装，并且可以编译为纯JavaScript，从而可以轻松集成到现代Web开发工作流中。


如果您在Dart-VM内运行Dart-Sass，它的运行速度很快，但它表示可以编译为纯JS，dart-sass只是一个编译版本，比node-sass和native dart...]]></description><category></category></item><item><title><![CDATA[Object.defineProperty 使用详解：]]></title><link>https://blog.youkuaiyun.com/github_37360787/article/details/86648684</link><guid>https://blog.youkuaiyun.com/github_37360787/article/details/86648684</guid><author>github_37360787</author><pubDate>Fri, 25 Jan 2019 17:02:00 +0800</pubDate><description><![CDATA[理解Object.defineProperty的作用：

 

对象是由多个名/值对组成的无序的集合。对象中每个属性对应任意类型的值。
定义对象可以使用构造函数或字面量的形式：


var obj = new Object;  //obj = {}
obj.name = &quot;张三&quot;;  //添加描述
obj.say = function(){};  //添加行为

除了以上添加属性的方式，还可以使用...]]></description><category></category></item><item><title><![CDATA[(a ==1 && a== 2 && a==3)   怎样才能为true？]]></title><link>https://blog.youkuaiyun.com/github_37360787/article/details/86648311</link><guid>https://blog.youkuaiyun.com/github_37360787/article/details/86648311</guid><author>github_37360787</author><pubDate>Fri, 25 Jan 2019 16:33:06 +0800</pubDate><description><![CDATA[一个有趣的问题：

在 JavaScript 中， (a ==1 &amp;amp;&amp;amp; a== 2 &amp;amp;&amp;amp; a==3) 是否有可能为 true ？      

解法一：利用松散相等运算符 == 的工作原理

你可以简单地创建一个带有自定义toString( 或者 valueOf)函数的对象，在每一次使用它时候改变它所的返回值，使其满足所有三个条件。


const a = {

 ...]]></description><category></category></item><item><title><![CDATA[这一次，彻底弄懂 JavaScript 执行机制(同步异步、宏任务微任务)]]></title><link>https://blog.youkuaiyun.com/github_37360787/article/details/86610431</link><guid>https://blog.youkuaiyun.com/github_37360787/article/details/86610431</guid><author>github_37360787</author><pubDate>Wed, 23 Jan 2019 15:05:19 +0800</pubDate><description><![CDATA[本文的目的就是要保证你彻底弄懂javascript的执行机制，如果读完本文还不懂，可以揍我。

不论你是javascript新手还是老鸟，不论是面试求职，还是日常开发工作，我们经常会遇到这样的情况：给定的几行代码，我们需要知道其输出内容和顺序。因为javascript是一门单线程语言，所以我们可以得出结论：

javascript是按照语句出现的顺序执行的
看到这里读者要打人了：我难道不知道js是...]]></description><category></category></item><item><title><![CDATA[HTTP 411、412、415 、416、417错误来源]]></title><link>https://blog.youkuaiyun.com/github_37360787/article/details/86560037</link><guid>https://blog.youkuaiyun.com/github_37360787/article/details/86560037</guid><author>github_37360787</author><pubDate>Sun, 20 Jan 2019 11:15:49 +0800</pubDate><description><![CDATA[411 Length Required：

　　服务器拒绝在没有定义Content-Length头的情况下接受请求。在添加了表明请求消息体长度的有效Content-Length头之后，客户端可以再次提交该请求。

 

 412 Precondition Failed

     服务器在验证在请求的头字段中给出先决条件时，没能满足其中的一个或多个。这个状态码允许客户端在获取资源时在请求的元信息（...]]></description><category></category></item><item><title><![CDATA[HTTP 413错误来源]]></title><link>https://blog.youkuaiyun.com/github_37360787/article/details/86560006</link><guid>https://blog.youkuaiyun.com/github_37360787/article/details/86560006</guid><author>github_37360787</author><pubDate>Sun, 20 Jan 2019 10:50:10 +0800</pubDate><description><![CDATA[环境：

Ubuntu 16.04 nginx 1.5.6

通过post上传文件过大时，会出现413错误码；前端打开开发者模式，在输出台的位置会出现:

&amp;lt;span style=&quot;color:#ff0000;&quot;&amp;gt;Failed to load resource: the server responded with a status of 413 (Request Entity Too ...]]></description><category></category></item><item><title><![CDATA[拖拽上传文件原生js剖析详解]]></title><link>https://blog.youkuaiyun.com/github_37360787/article/details/86244304</link><guid>https://blog.youkuaiyun.com/github_37360787/article/details/86244304</guid><author>github_37360787</author><pubDate>Thu, 10 Jan 2019 17:45:30 +0800</pubDate><description><![CDATA[拖拽上传，异于浏览器自带的input（type = file）标签的上传方式，基于XMLHttpRequest对象实现文件的上传的方式！！！

。

。

。

直奔主题：

html:  定义拖拽上传的区域


&amp;lt;div class=&quot;box&quot;&amp;gt;&amp;lt;/div&amp;gt;

js： 基于原生XMLHttpRequest 对象发送文件


//禁止浏览器打开图片行为
//必须先禁止浏览器...]]></description><category></category></item><item><title><![CDATA[JS判断一个对象是否为空]]></title><link>https://blog.youkuaiyun.com/github_37360787/article/details/84579146</link><guid>https://blog.youkuaiyun.com/github_37360787/article/details/84579146</guid><author>github_37360787</author><pubDate>Wed, 28 Nov 2018 09:50:35 +0800</pubDate><description><![CDATA[本文给出三种判断方法：

最常见的思路，for...in...遍历属性，为真则为“非空数组”；否则为“空数组”；


     2.通过JSON自带的.stringify方法来判断：     



     3.ES6新增的方法Object.keys():



 

 ...]]></description><category></category></item><item><title><![CDATA[微信小程序自定义导航栏（wx_custom_navigation_bar）]]></title><link>https://blog.youkuaiyun.com/github_37360787/article/details/84316203</link><guid>https://blog.youkuaiyun.com/github_37360787/article/details/84316203</guid><author>github_37360787</author><pubDate>Wed, 21 Nov 2018 11:35:50 +0800</pubDate><description><![CDATA[GitHub： https://github.com/fuyz/wx_custom_navigationStyle 

可选择返回键、首页键，动态设置标题，响应式组件

文档 : 文档介绍



效果如下：


标题

 

 ]]></description><category></category></item></channel></rss>