<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[惊蛰小鱼的博客]]></title><description><![CDATA[前端小鱼，JSer，JS狗]]></description><link>https://blog.youkuaiyun.com/u013137242</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u013137242]]></copyright><item><title><![CDATA[面向 JavaScript 开发者，关于 Rust 的常见问题]]></title><link>https://blog.youkuaiyun.com/u013137242/article/details/138707738</link><guid>https://blog.youkuaiyun.com/u013137242/article/details/138707738</guid><author>u013137242</author><pubDate>Sat, 11 May 2024 11:24:00 +0800</pubDate><description><![CDATA[关于Rust，Javascript 的常见问题]]></description><category></category></item><item><title><![CDATA[来自高级研发工程师的 37 个 Tips]]></title><link>https://blog.youkuaiyun.com/u013137242/article/details/138705349</link><guid>https://blog.youkuaiyun.com/u013137242/article/details/138705349</guid><author>u013137242</author><pubDate>Sat, 11 May 2024 10:43:56 +0800</pubDate><description><![CDATA[作为一名前端开发者，你是否准备好迎接挑战并提升自己的技能？以下是一些来自资深前端开发者的实用建议，帮助你在前端开发的世界中稳步前行。

准备好了吗？让我们开始吧 💪。]]></description><category></category></item><item><title><![CDATA[ES6(ES2015) 之后，新增的哪些特性是你日常使用的]]></title><link>https://blog.youkuaiyun.com/u013137242/article/details/138667041</link><guid>https://blog.youkuaiyun.com/u013137242/article/details/138667041</guid><author>u013137242</author><pubDate>Fri, 10 May 2024 15:06:15 +0800</pubDate><description><![CDATA[随着 ES6（ECMAScript 2015）的发布，JavaScript 语言迎来了一系列激动人心的新特性。但是，ES6 仅仅是一个开始，后续的 ECMAScript 版本继续为我们的语言添加了更多的现代化特性。以下是一些在 ES6 之后被引入的特性，以及它们如何影响我们的 JavaScript 编程。]]></description><category></category></item><item><title><![CDATA[不要再用axios 和 fetch了，试试更强大的up-fetch]]></title><link>https://blog.youkuaiyun.com/u013137242/article/details/138027456</link><guid>https://blog.youkuaiyun.com/u013137242/article/details/138027456</guid><author>u013137242</author><pubDate>Sun, 21 Apr 2024 10:42:32 +0800</pubDate><description><![CDATA[假如你已经厌倦了在每个项目中都编写 fetch 封装程序，那么，up-fetch 或许就是你的救命稻草。up-fetch 是一个仅有 1kb 大小，同时集成了一些合理配置的Fetch API 工具。]]></description><category></category></item><item><title><![CDATA[真懂了？自定义实现 Javascript 中的 call、apply 和 bind 方法]]></title><link>https://blog.youkuaiyun.com/u013137242/article/details/137978898</link><guid>https://blog.youkuaiyun.com/u013137242/article/details/137978898</guid><author>u013137242</author><pubDate>Fri, 19 Apr 2024 22:04:37 +0800</pubDate><description><![CDATA[通常情况下，在调用函数时，函数内部的 this 的值是访问该函数的对象。利用callapply和bind，你可以在调用现有函数时将任意值分配给this，而无需先将函数作为属性附加到对象上。这使得你可以将一个对象的方法用作通用的实用函数。]]></description><category></category></item><item><title><![CDATA[如何使用CSS构建一个瀑布流布局]]></title><link>https://blog.youkuaiyun.com/u013137242/article/details/137435618</link><guid>https://blog.youkuaiyun.com/u013137242/article/details/137435618</guid><author>u013137242</author><pubDate>Sat, 06 Apr 2024 19:19:12 +0800</pubDate><description><![CDATA[瀑布流布局是一种常见的网页布局方式，其中元素以不同的大小排列，且行与列之间没有不均匀的间隙。在瀑布流布局中，即使某一行或列中的元素较短，下一个元素也会占据空间。]]></description><category></category></item><item><title><![CDATA[前端进阶之最长递增子序列算法和vue.js中的Diff算法]]></title><link>https://blog.youkuaiyun.com/u013137242/article/details/137382736</link><guid>https://blog.youkuaiyun.com/u013137242/article/details/137382736</guid><author>u013137242</author><pubDate>Thu, 04 Apr 2024 22:27:23 +0800</pubDate><description><![CDATA[Vue3中的Diff算法与最大递增子序列算法]]></description><category></category></item><item><title><![CDATA[答：一道价值25k的蚂蚁金服异步串行面试题]]></title><link>https://blog.youkuaiyun.com/u013137242/article/details/108029594</link><guid>https://blog.youkuaiyun.com/u013137242/article/details/108029594</guid><author>u013137242</author><pubDate>Sat, 15 Aug 2020 22:42:06 +0800</pubDate><description><![CDATA[原题： 一道价值25k的蚂蚁金服异步串行面试题
const log = console.log;
const delay = (ms) =&gt; new Promise((resolve) =&gt; setTimeout(resolve, ms));

const subFlow = createFlow([() =&gt; delay(1000).then(() =&gt; log("c"))]);

createFlow([
    () =&gt; log("a"),
    () =&gt; l]]></description><category></category></item><item><title><![CDATA[【译】Git Commit Message 格式约定]]></title><link>https://blog.youkuaiyun.com/u013137242/article/details/107863243</link><guid>https://blog.youkuaiyun.com/u013137242/article/details/107863243</guid><author>u013137242</author><pubDate>Fri, 07 Aug 2020 15:25:44 +0800</pubDate><description><![CDATA[原文链接

目的

可以自动生成 CHANGELOG;
可以忽略通过git bisect生成的commit message;
为浏览提交历史提供更清晰的格式；

生成 CHANGELOG
在更改日志中使用这三个部分：新功能、bug修复、非后向兼容变更（breaking change）。
在发布版本时，这三个部分的内容可由脚本生成，并指向相关commit的链接。
当然，也可以在实际发布之前基于脚本生成骨架，手动编辑CHANGELOG的内容。
查看自上次发布以来所有提交主题（提交消息中的第一行）的列表：
gi.]]></description><category></category></item><item><title><![CDATA[Koa源码笔记]]></title><link>https://blog.youkuaiyun.com/u013137242/article/details/106256474</link><guid>https://blog.youkuaiyun.com/u013137242/article/details/106256474</guid><author>u013137242</author><pubDate>Thu, 21 May 2020 14:15:45 +0800</pubDate><description><![CDATA[Koa是基于Node.js的web框架，利用它可以很快搭建起一个http服务。本来是要利用它验证下http协议中某些细节问题，但是发现源码不多，就顺带看了下。

Koa作为一个第三方模块，对外仅暴露了 Application和HttpError。 我们仅讨论Application（HttpError实际为第三方模块，用于给Koa添加自定义的http错误处理方法）。
Application是一个class可看做Koa自身，先看下Koa实例上有哪些方法：

上面的这些方法除了inspect和toJSON这两个.]]></description><category></category></item><item><title><![CDATA[2019 JS内功修炼之读jQuery源码]]></title><link>https://blog.youkuaiyun.com/u013137242/article/details/103844990</link><guid>https://blog.youkuaiyun.com/u013137242/article/details/103844990</guid><author>u013137242</author><pubDate>Sun, 05 Jan 2020 19:33:52 +0800</pubDate><description><![CDATA[引言：2019年，react hooks成功上位，vue3.0发布alpha版，TS使用率的飞速增长，以及大量前端开发工具使用体验的大幅优化和提高等等让越来越多的开发者吐槽前端学不动了的时候，最好的应对方式便是对基础概念的掌握。内功足够强大，才能做到不被别人牵着鼻子走。阅读开源代码是一个很好的方式，首先率选择了jQuery便是里面的内容没有太多足够抽象的设计思想。更多的是对于基础内容的覆盖。同时...]]></description><category></category></item><item><title><![CDATA[探究JavaScript中的valueOf和toString]]></title><link>https://blog.youkuaiyun.com/u013137242/article/details/103844961</link><guid>https://blog.youkuaiyun.com/u013137242/article/details/103844961</guid><author>u013137242</author><pubDate>Sun, 05 Jan 2020 17:03:21 +0800</pubDate><description><![CDATA[JS 中的类型
JS中的类型分为两大类： primitive和object。
primitive： null, undefined, Number, String, Boolean, Symbol。
object：不是primitive类型的值，都是object类型。
JS是非严格类型的语言
在JS中存在大量的数据隐式转换，例如 1 + 'a'。对于primitive类型，在不同类型之间有明确的转...]]></description><category></category></item><item><title><![CDATA[JavaScript prototype 原型链]]></title><link>https://blog.youkuaiyun.com/u013137242/article/details/94407270</link><guid>https://blog.youkuaiyun.com/u013137242/article/details/94407270</guid><author>u013137242</author><pubDate>Mon, 01 Jul 2019 20:36:02 +0800</pubDate><description><![CDATA[几个概念

构造函数： 构造函数实际上是一个普通函数，通过new操作符，可以利用构造函数快速创建对象；
prototype：每个构造函数自身上都会有一个prototype属性，该属性值为一个对象，这个对象具有一个constructor属性，constructor指向构造函数自身；
实例： 通过构造函数创建的对象，可以看做是该构造函数的实例；
__proto__：通过构造函数创建的每个对象上面，都会...]]></description><category></category></item><item><title><![CDATA[面试题 纯CSS实现一个自适应的正方形]]></title><link>https://blog.youkuaiyun.com/u013137242/article/details/92846035</link><guid>https://blog.youkuaiyun.com/u013137242/article/details/92846035</guid><author>u013137242</author><pubDate>Wed, 19 Jun 2019 20:58:09 +0800</pubDate><description><![CDATA[要求：

正方形；
宽度或高度有一个是100%；
自适应；

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

&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&...]]></description><category></category></item><item><title><![CDATA[CSS揭秘之多重边框]]></title><link>https://blog.youkuaiyun.com/u013137242/article/details/91357489</link><guid>https://blog.youkuaiyun.com/u013137242/article/details/91357489</guid><author>u013137242</author><pubDate>Sun, 09 Jun 2019 21:33:24 +0800</pubDate><description><![CDATA[多重边框的两种实现方案：

border-shadow
outline

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

&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale...]]></description><category></category></item><item><title><![CDATA[元素总是居中且高度为宽度一半]]></title><link>https://blog.youkuaiyun.com/u013137242/article/details/89530929</link><guid>https://blog.youkuaiyun.com/u013137242/article/details/89530929</guid><author>u013137242</author><pubDate>Fri, 26 Apr 2019 09:09:11 +0800</pubDate><description><![CDATA[有一个元素element, 实现如下需求：

元素e水平垂直居中
元素e水平方向与父元素保持10px间距
元素e的高度是宽度的一半

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

&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;meta name="viewport" content="wid...]]></description><category></category></item><item><title><![CDATA[初窥AST]]></title><link>https://blog.youkuaiyun.com/u013137242/article/details/87904818</link><guid>https://blog.youkuaiyun.com/u013137242/article/details/87904818</guid><author>u013137242</author><pubDate>Sun, 24 Feb 2019 16:43:03 +0800</pubDate><description><![CDATA[AST是什么
AST(Abstract Syntax Tree)，抽象语法树， 是程序的抽象意义表示。意味着跟语言的具体文法无关，利用抽象语法树可以进行程序的处理和转换。例如更改函数名称，语法转换甚至不同语言间的转换。
AST的一个示例：

AST的各种应用场景

编译器（compilor）

DOM
JS引擎
构建工具

webpack

依赖查询
treeshaking


babel


J...]]></description><category></category></item><item><title><![CDATA[利用clear清除浮动的一些问题]]></title><link>https://blog.youkuaiyun.com/u013137242/article/details/86532578</link><guid>https://blog.youkuaiyun.com/u013137242/article/details/86532578</guid><author>u013137242</author><pubDate>Thu, 17 Jan 2019 22:42:00 +0800</pubDate><description><![CDATA[下面这段代码是用来清除浮动带来的高度塌陷问题
.clearfix:before {
    content: &quot;.&quot;; 
    display: block; 
    height: 0; 
    clear: both; 
    visibility: hidden;
}

Question 1: 上面的代码的能够实现清除浮动的问题吗？
Answer： Can’t. 因为clear属性只...]]></description><category></category></item><item><title><![CDATA[CSS2中盒模型与布局的一些概念关系]]></title><link>https://blog.youkuaiyun.com/u013137242/article/details/85937661</link><guid>https://blog.youkuaiyun.com/u013137242/article/details/85937661</guid><author>u013137242</author><pubDate>Sun, 06 Jan 2019 17:24:06 +0800</pubDate><description><![CDATA[CSS的一些名词和概念
用来帮你更明确地去描述HTML/CSS世界的事物。
box
在CSS中，一个元素就可以看作一个box。具体信息可以参考盒模型的解释，这里暂且不作展开。
containing blocks
Box的位置和大小时根据一个称为containing blocks的边界进行计算的。
block-level elements 和 block boxes
block-level elem...]]></description><category></category></item><item><title><![CDATA[CSS三角形&&containing block]]></title><link>https://blog.youkuaiyun.com/u013137242/article/details/83963650</link><guid>https://blog.youkuaiyun.com/u013137242/article/details/83963650</guid><author>u013137242</author><pubDate>Sun, 11 Nov 2018 22:36:40 +0800</pubDate><description><![CDATA[CSS浏览
用CSS画一个三角形
一个红色的三角形
&amp;lt;style&amp;gt;
    .bottom-triangle {
      width: 0;
      height: 0;
      border-top: 40px solid transparent;
      border-left: 40px solid transparent;
      border-right:...]]></description><category></category></item></channel></rss>