<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[cherrylovedog的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/cherrylovedog</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cherrylovedog]]></copyright><item><title><![CDATA[leetcode刷题]]></title><link>https://blog.youkuaiyun.com/cherrylovedog/article/details/121318929</link><guid>https://blog.youkuaiyun.com/cherrylovedog/article/details/121318929</guid><author>cherrylovedog</author><pubDate>Sun, 14 Nov 2021 16:49:55 +0800</pubDate><description><![CDATA[两数相加(leetCode 2)
给你两个 非空 的链表，表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的，并且每个节点只能存储 一位 数字。
请你将两个数相加，并以相同形式返回一个表示和的链表。
你可以假设除了数字 0 之外，这两个数都不会以 0 开头。
示例一

输入：l1 = [2,4,3], l2 = [5,6,4]
输出：[7,0,8]
解释：342 + 465 = 807.

示例二
输入：l1 = [0], l2 = [0]
输出：[0]


示例三
输入：l1 = [9,9,9,]]></description><category></category></item><item><title><![CDATA[算法相关题目]]></title><link>https://blog.youkuaiyun.com/cherrylovedog/article/details/120155480</link><guid>https://blog.youkuaiyun.com/cherrylovedog/article/details/120155480</guid><author>cherrylovedog</author><pubDate>Tue, 07 Sep 2021 12:18:43 +0800</pubDate><description><![CDATA[描述
判断给定的链表中是否有环。如果有环则返回true，否则返回false。
你能给出空间复杂度的解法么？
输入分为2部分，第一部分为链表，第二部分代表是否有环，然后回组成head头结点传入到函数里面。-1代表无环，其他的数字代表有环，这些参数解释仅仅是为了方便读者自测调试
示例一
输入
{3,2,0,-4},1
输出
返回值：
true
说明：
第一部分{3,2,0,-4}代表一个链表，第二部分的1表示，-4到位置1，即-4-&gt;2存在一个链接，组成传入的head为一个带环的链表 ,返回true
示例]]></description><category></category></item><item><title><![CDATA[js循环机制中，for循环阻塞代码时，settimeout执行时机]]></title><link>https://blog.youkuaiyun.com/cherrylovedog/article/details/120048973</link><guid>https://blog.youkuaiyun.com/cherrylovedog/article/details/120048973</guid><author>cherrylovedog</author><pubDate>Thu, 02 Sep 2021 22:37:15 +0800</pubDate><description><![CDATA[setTimeout(() =&gt; {
    console.log(1);
}, 20);
 
console.log(2);
 
setTimeout(() =&gt; {
    console.log(3);
}, 10);
//setTimeout(() =&gt; {

  //  console.log(3);
//}, 70); 如果把这个时间改成70,这个执行顺序可能会不变，可能会到最后一个。因为for循环用时是66-71ms不定，所i有执行时机也就 不确定
//以这个setTimo]]></description><category></category></item><item><title><![CDATA[webpack-性能优化配置]]></title><link>https://blog.youkuaiyun.com/cherrylovedog/article/details/119428165</link><guid>https://blog.youkuaiyun.com/cherrylovedog/article/details/119428165</guid><author>cherrylovedog</author><pubDate>Thu, 05 Aug 2021 22:38:02 +0800</pubDate><description><![CDATA[webpack性能优化

开发环境优化
生产环境优化

开发环境性能优化

优化打包构建速度（webpack打包速度会更快，体积庞大了，速度变慢，所以我们要优化速度）
优化代码 调试（source map定位错误位置等信息）

生产环境性能优化

优化打包构建速度
优化代码运行的性能

HMR（hot module repacement 模块热替换）
注意：修改了webpack,config.js文件后，一定要停掉重新编译一遍

作用：一个模块发生变化，只会重新打包这个模块（比如修改css样式，不应该重新打]]></description><category></category></item><item><title><![CDATA[webpack学习（三）]]></title><link>https://blog.youkuaiyun.com/cherrylovedog/article/details/119394971</link><guid>https://blog.youkuaiyun.com/cherrylovedog/article/details/119394971</guid><author>cherrylovedog</author><pubDate>Wed, 04 Aug 2021 22:48:23 +0800</pubDate><description><![CDATA[webpack学习（二）
压缩js和html


设置mode为production之后，webpack会自动加载一些插件，帮助我们进行js压缩；
html不需要进行代码兼容处理的，标签认识就是认识，不认识就是不认识，我们只需要压缩即可。html的压缩我们就在HtmlWebpackPlugin中做

 new HtmlWebpackPlugin({
            template: "./src/index.html",
            //移除空格
            collaps]]></description><category></category></item><item><title><![CDATA[webpack学习（二）]]></title><link>https://blog.youkuaiyun.com/cherrylovedog/article/details/119359616</link><guid>https://blog.youkuaiyun.com/cherrylovedog/article/details/119359616</guid><author>cherrylovedog</author><pubDate>Tue, 03 Aug 2021 21:58:53 +0800</pubDate><description><![CDATA[webpack学习（一）
css压缩处理
css压缩主要用到的是optimize-css-assets-webpack-plugin
npm install --save-dev optimize-css-assets-webpack-plugin



引入
var OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin'); = require('optimize-css-assets-webpack-plugin');]]></description><category></category></item><item><title><![CDATA[webpack学习 （-）]]></title><link>https://blog.youkuaiyun.com/cherrylovedog/article/details/115874777</link><guid>https://blog.youkuaiyun.com/cherrylovedog/article/details/115874777</guid><author>cherrylovedog</author><pubDate>Mon, 02 Aug 2021 22:44:21 +0800</pubDate><description><![CDATA[webpack 核心概念（4个）
Entry

入口指示webpack以哪个文件为入口起点，开始打包，分析构建内部依赖图。

Output

指示webpack打包后的资源bundles,输出到哪里去，以及怎么命名。

Loader（翻译官）

Loader让webpack能够去处理那些非js文件（webpack本身只能理解js）


比如 img， less都可以通过loader，转成webpack识别的代码


Plugins

插件可以用于执行范围更广的任务。插件的范围包括，从打包优化和压缩，一直到重]]></description><category></category></item><item><title><![CDATA[DomCotentLoad事件执行时机]]></title><link>https://blog.youkuaiyun.com/cherrylovedog/article/details/118557926</link><guid>https://blog.youkuaiyun.com/cherrylovedog/article/details/118557926</guid><author>cherrylovedog</author><pubDate>Wed, 07 Jul 2021 21:34:25 +0800</pubDate><description><![CDATA[1.没有js文件时

DOMContentLoaded事件不直接等待CSS文件、图片的加载完成

2.有js文件时
-如果页面中静态的写有script标签，DOMContentLoaded事件需要等待JS执行完才触发。
而script标签中的JS需要等待位于其前面的CSS的加载完成。
3.img何时开始解码、绘制？
-img的加载请求很早就会发出去

js不会阻塞图片加载
css会阻塞图片加载


有可能css文件会修改图片display属性，所以图片需要等待css加载过后才解码


...]]></description><category></category></item><item><title><![CDATA[http缓存]]></title><link>https://blog.youkuaiyun.com/cherrylovedog/article/details/117645841</link><guid>https://blog.youkuaiyun.com/cherrylovedog/article/details/117645841</guid><author>cherrylovedog</author><pubDate>Mon, 07 Jun 2021 07:03:25 +0800</pubDate><description><![CDATA[什么是浏览器缓存
浏览器会把一个已经请求过得web资源（如HTML页面，图片，就是，数据等）拷贝一份副本存储到 浏览器中。缓存会根据进来的请求保存输出内容的副本。当下一个请求进来的时候，如果是相同的url，缓存会根据缓存机制决定是直接使用副本响应请求还是向原服务器再次发送请求。比较常见的就是浏览器会缓存访问网站的网页，当再次访问这个url时，如果网页没有更新，就不会再次下载网页，而是中直接使用本地缓存的页面。只有当网站名明确标识资源已更新，浏览器才会再次下载网页
## 为什么使用缓存

减少网络带宽（当we]]></description><category></category></item><item><title><![CDATA[记录前端面试问题]]></title><link>https://blog.youkuaiyun.com/cherrylovedog/article/details/117645642</link><guid>https://blog.youkuaiyun.com/cherrylovedog/article/details/117645642</guid><author>cherrylovedog</author><pubDate>Mon, 07 Jun 2021 06:27:01 +0800</pubDate><description><![CDATA[百度电话一面

清楚前端缓存吗
答： 有localStorage cookie sessionStorage等和http缓存
http缓存，详细说一下
答：主要说了一下，http缓存有  强缓存、协商缓存 ，然后etag  ⇒  if-none-match  if-modify ⇒ if-modify-since
这一题在面试官继续追问那一个是后端返回给前端的时候，卡住


...]]></description><category></category></item><item><title><![CDATA[Http缓存]]></title><link>https://blog.youkuaiyun.com/cherrylovedog/article/details/117439546</link><guid>https://blog.youkuaiyun.com/cherrylovedog/article/details/117439546</guid><author>cherrylovedog</author><pubDate>Wed, 02 Jun 2021 13:16:50 +0800</pubDate><description><![CDATA[web得缓存大致可以分为 数据库缓存，服务器端缓存（cdn缓存，代理服务器），浏览器缓存（localstorage,cookie，sessionstorage,http缓存）；

对于http缓存：
http缓存分为两种，协商缓存、强缓存
1.当我们请求一个资源得时候，会先判断http头信息，来判断是否命中强缓存，如果命中强缓存那么就不想服务端发送请求，直接加载缓存中得资源。
2.如果没有命中强缓存，那么就会向服务器发送请求信息，服务器端会判断浏览器得缓存是否失效，如果没有失效，那么服务器就不会返回新的资.]]></description><category></category></item><item><title><![CDATA[马士兵算法与数据结构学习（1）]]></title><link>https://blog.youkuaiyun.com/cherrylovedog/article/details/117389622</link><guid>https://blog.youkuaiyun.com/cherrylovedog/article/details/117389622</guid><author>cherrylovedog</author><pubDate>Sat, 29 May 2021 19:42:58 +0800</pubDate><description><![CDATA[排序
快速排序

快速排序是最简单也是最没有用的排序算法：时间复杂度O(n^2),还不稳定，最好和最坏情况均
o(n^2)，空间复杂度是O(1),空间复杂度，值得是像有无开辟一个新的数组去存储，像是在快速排序中开辟一个变量进行存储，这样的可以胡忽略不计

代码
  quickSort = (arr: Array&lt;number&gt;)=&gt;{
        if (!arr.length) return arr;
        for (let i = 0; i &lt; arr.length]]></description><category></category></item><item><title><![CDATA[vscode setting]]></title><link>https://blog.youkuaiyun.com/cherrylovedog/article/details/115768015</link><guid>https://blog.youkuaiyun.com/cherrylovedog/article/details/115768015</guid><author>cherrylovedog</author><pubDate>Fri, 16 Apr 2021 17:21:36 +0800</pubDate><description><![CDATA[{
“window.zoomLevel”: 2,
// “editor.formatOnSave”: true,
// “editor.autoFixOnSave”: true,
“eslint.validate”: [
“vue”,
“html”,
“javascript”,
“typescript”,
“javascriptreact”,
“typescriptreact”
],
/"[sass]": {
“editor.defaultFormatter”: “sasa.vscode-sass-form]]></description><category></category></item><item><title><![CDATA[typescript学习一]]></title><link>https://blog.youkuaiyun.com/cherrylovedog/article/details/107371054</link><guid>https://blog.youkuaiyun.com/cherrylovedog/article/details/107371054</guid><author>cherrylovedog</author><pubDate>Wed, 15 Jul 2020 21:49:59 +0800</pubDate><description><![CDATA[一、随时将ts文件自动保存为es5的js文件
1.首先进入到ts文件所在的文件夹，执行命令tsc --init此时会生成tsconfig.json.
2.然后我们修改 tsconfig.json中的"outDir": "./js",
3.此时当我们修改ts文件保存时就会自动生成一个js文件夹，并将es5代码保存到自动生成的js文件价下自动生成的index.js中
二、ts中的数据类型
官方文档

...]]></description><category></category></item><item><title><![CDATA[vue动态创建组件，类似element-ui]]></title><link>https://blog.youkuaiyun.com/cherrylovedog/article/details/107007294</link><guid>https://blog.youkuaiyun.com/cherrylovedog/article/details/107007294</guid><author>cherrylovedog</author><pubDate>Sun, 28 Jun 2020 20:30:51 +0800</pubDate><description><![CDATA[https://zhuanlan.zhihu.com/p/38310370

]]></description><category></category></item><item><title><![CDATA[parseint和arr.map关系]]></title><link>https://blog.youkuaiyun.com/cherrylovedog/article/details/106997360</link><guid>https://blog.youkuaiyun.com/cherrylovedog/article/details/106997360</guid><author>cherrylovedog</author><pubDate>Sun, 28 Jun 2020 13:49:10 +0800</pubDate><description><![CDATA[parseint 和map的关系

]]></description><category></category></item><item><title><![CDATA[javascript事件循环机制的初步理解]]></title><link>https://blog.youkuaiyun.com/cherrylovedog/article/details/106993002</link><guid>https://blog.youkuaiyun.com/cherrylovedog/article/details/106993002</guid><author>cherrylovedog</author><pubDate>Sun, 28 Jun 2020 09:54:05 +0800</pubDate><description><![CDATA[规范中规定，task分为两大类, 分别是 Macro Task （宏任务）和 Micro Task（微任务）, 并且每个宏任务结束后, 都要清空所有的微任务,这里的 Macro Task也是我们常说的 task ，有些文章并没有对其做区分，后面文章中所提及的task皆看做宏任务( macro task)。
(macro)task 主要包含：script( 整体代码)、setTimeout、setInterval、I/O、UI 交互事件、setImmediate(Node.js 环境)
microtask主要]]></description><category></category></item><item><title><![CDATA[vue中transition进场动画不生效，离开动画生效]]></title><link>https://blog.youkuaiyun.com/cherrylovedog/article/details/106932181</link><guid>https://blog.youkuaiyun.com/cherrylovedog/article/details/106932181</guid><author>cherrylovedog</author><pubDate>Tue, 23 Jun 2020 21:17:35 +0800</pubDate><description><![CDATA[如果想要在页面初始化时播放动画需要添加appear和appear-active-class
解决：
1.加appear
&lt;transition name="slide" appear&gt;&lt;/transition&gt;
2 加v-if
&lt;transition name="slide" &gt; &lt;div class="detail" v-if="id"&gt;&lt;/div&gt; &lt;/transition&gt;

...]]></description><category></category></item><item><title><![CDATA[vue中引入1.60版本cesium]]></title><link>https://blog.youkuaiyun.com/cherrylovedog/article/details/106836862</link><guid>https://blog.youkuaiyun.com/cherrylovedog/article/details/106836862</guid><author>cherrylovedog</author><pubDate>Thu, 18 Jun 2020 16:03:22 +0800</pubDate><description><![CDATA[1.安装cesium
npm install --save  cesium@1.60.0

2.cesium环境配置
2.1配置 webpack.base.conf.js

在文件开头定义路径

const cesiumSource = '../node_modules/cesium/Source'


在output添加 sourcePrefix: ’ ’

output: {
    path: config.build.assetsRoot,
    filename: '[name].js',
  ]]></description><category></category></item><item><title><![CDATA[Promise相关总结]]></title><link>https://blog.youkuaiyun.com/cherrylovedog/article/details/106832209</link><guid>https://blog.youkuaiyun.com/cherrylovedog/article/details/106832209</guid><author>cherrylovedog</author><pubDate>Thu, 18 Jun 2020 13:27:35 +0800</pubDate><description><![CDATA[Promose
是异步编程的一种解决方案。解决回调函数嵌套过多的情况。
const promise =new Promise(function(resolve,reject){
	setTimeout(function(){
		resolve('执行成功')
	},3000)
})

promise.then(res=&gt;{
	console.log(res)
}).catch(err=&gt;{
	console.log(err)
})
console.log(111)

先输出111，等待三秒之后]]></description><category></category></item></channel></rss>