<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[麦芒的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_39554306</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_39554306]]></copyright><item><title><![CDATA[Vue中的虚拟DOM]]></title><link>https://blog.youkuaiyun.com/qq_39554306/article/details/118356182</link><guid>https://blog.youkuaiyun.com/qq_39554306/article/details/118356182</guid><author>qq_39554306</author><pubDate>Wed, 30 Jun 2021 10:53:50 +0800</pubDate><description><![CDATA[Virtual DOM 是一棵以 JavaScript 对象， VNode 节点作为基础的树，实际上它只是一层对真实 DOM 的抽象，并最终可以通过一系列操作使这棵树映射到真实环境上。
我们可以把Virtual DOM 理解为一个简单的JS对象，并且最少包含标签名( tag)、属性(attrs)和子元素对象( children)三个属性。
模板   →    渲染函数   →    虚拟DOM树   →   真实DOM
    complie        render          creat

虚拟]]></description><category></category></item><item><title><![CDATA[如何讲好原型链]]></title><link>https://blog.youkuaiyun.com/qq_39554306/article/details/118355142</link><guid>https://blog.youkuaiyun.com/qq_39554306/article/details/118355142</guid><author>qq_39554306</author><pubDate>Wed, 30 Jun 2021 10:25:23 +0800</pubDate><description><![CDATA[昨天面试字节，挂了，很多知识只是明白个大概，但无法自己表述出来，在知道和表述之间还有着巨大的鸿沟，同时也再次证明了学东西真的不图快，图快就真学不好了。之后的学习慢慢来，稳扎稳打。那我接下来以一篇知乎来自己总结原型链。
function Person(name){     // 1
    this.name = name;
}

Person.prototype.sayName = function(welcome) {     // 5
	console.log(welcome, this.name);
]]></description><category></category></item><item><title><![CDATA[Axios 的简易学习笔记]]></title><link>https://blog.youkuaiyun.com/qq_39554306/article/details/118143025</link><guid>https://blog.youkuaiyun.com/qq_39554306/article/details/118143025</guid><author>qq_39554306</author><pubDate>Wed, 23 Jun 2021 09:43:58 +0800</pubDate><description><![CDATA[Axios是一个基于promise的HTTP库。
功能特性：

从浏览器中创建XMLHttpRequests
从node.js中创建http请求
支持promise API
拦截请求和响应
转换请求数据和响应数据
取消请求
自动转换JSON数据
客户端支持防御XSRF

跨站请求伪造（Cross-site request forgery），通常缩写为 CSRF 或者 XSRF， 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。
get请求栗子：
// 第一种写法
axios.get(]]></description><category></category></item><item><title><![CDATA[滑动窗口 力扣最短超串]]></title><link>https://blog.youkuaiyun.com/qq_39554306/article/details/116228581</link><guid>https://blog.youkuaiyun.com/qq_39554306/article/details/116228581</guid><author>qq_39554306</author><pubDate>Wed, 28 Apr 2021 12:32:47 +0800</pubDate><description><![CDATA[最近遇到两道滑动窗口的题都没有解出来，借此来学习这个早已熟悉却不怎么会用的概念。
Sliding Window：其实看到类似满足xx的最小区间的子串这类问题自然可以想到滑动窗口。
一般滑动窗口要维护两个指针，l,r
1.当窗口内到元素未达到条件时， r++
2.当窗口内到元素达到条件时，l++
function slideWindow(nums){
	let n = nums.length()
	let l = 0, r = 0, ans = 0
	while(r &lt; n){
		while(nums]]></description><category></category></item><item><title><![CDATA[表单]]></title><link>https://blog.youkuaiyun.com/qq_39554306/article/details/116191863</link><guid>https://blog.youkuaiyun.com/qq_39554306/article/details/116191863</guid><author>qq_39554306</author><pubDate>Tue, 27 Apr 2021 10:44:08 +0800</pubDate><description><![CDATA[input 输入框
-type属性：输入框类型
type：text，普通文本输入框
type：password 密码框
type：date 日期选择框
type：search 搜索框
type：color 颜色选择器
type：checkbox 多选框
type：radio 单选框 （取同一个name属性）
like this:
&lt;input type="password" placeholder="xxx"&gt;

-value属性：输入框的值
-placeholder属性：显示提示的文本，文本框]]></description><category></category></item><item><title><![CDATA[fromCharCode(),charCodeAt(),charAt()]]></title><link>https://blog.youkuaiyun.com/qq_39554306/article/details/116161025</link><guid>https://blog.youkuaiyun.com/qq_39554306/article/details/116161025</guid><author>qq_39554306</author><pubDate>Mon, 26 Apr 2021 16:36:14 +0800</pubDate><description><![CDATA[fromCharCode()
可接受一个指定的unicode值，然后返回一个字符串
举个栗子：
String.fromCharCode(72,69,76,76,79)
'HELLO'

charCodeAt()
返回指定位置的字符的unicode编码，返回值是0～65535之间的整数，参数是idx，如果是负数或大于等于字符串的长度，返回NaN
‘HELLO’.charCodeAt(0)
72
‘HELLO’.charCodeAt(-1)
NaN

let str = "A"
str.charCodeAt()]]></description><category></category></item><item><title><![CDATA[给定两个树的节点，求它们的最短距离 JS]]></title><link>https://blog.youkuaiyun.com/qq_39554306/article/details/116143364</link><guid>https://blog.youkuaiyun.com/qq_39554306/article/details/116143364</guid><author>qq_39554306</author><pubDate>Mon, 26 Apr 2021 09:43:59 +0800</pubDate><description><![CDATA[//method 1
const shortestDistance = function(root, p, q) {
	// 最近公共祖先
	let zx = lowestCommonAncestor(root,p,q)
	let pathp = [], pathq = []
	getPath(zx,p,pathp)
	getPath(zx,q,pathq)
	return pathp.length + pathq.length
}

// 最近公共祖先
const lowestCommonAncestor]]></description><category></category></item><item><title><![CDATA[面试题 08.14. 布尔运算 JS]]></title><link>https://blog.youkuaiyun.com/qq_39554306/article/details/116133486</link><guid>https://blog.youkuaiyun.com/qq_39554306/article/details/116133486</guid><author>qq_39554306</author><pubDate>Sun, 25 Apr 2021 17:05:47 +0800</pubDate><description><![CDATA[/**
 * @param {string} s
 * @param {number} result
 * @return {number}
 */
var countEval = function(s, result) {
    let n = s.length
    // 创建三维数组
    let dp = new Array(n).fill(0).map(() =&gt; new Array(n).fill(0).map(() =&gt; new Array(2).fill(0)))
    ]]></description><category></category></item><item><title><![CDATA[实现数组a = [1,[2,[3,[4,null]]]]转换[4,[3,[2,[1,null]]]]]]></title><link>https://blog.youkuaiyun.com/qq_39554306/article/details/116131951</link><guid>https://blog.youkuaiyun.com/qq_39554306/article/details/116131951</guid><author>qq_39554306</author><pubDate>Sun, 25 Apr 2021 16:36:07 +0800</pubDate><description><![CDATA[(function main() {
    let a = [1,[2,[3,[4,null]]]]
    // 实现数组 b = [4,[3,[2,[1,null]]]]
    let path = []
    while(a){
        path.push(a.shift())
        a = a[0]
    }
    console.log(path)
    let real = [a]
    while(path.length){
        let arr = ]]></description><category></category></item><item><title><![CDATA[浮动]]></title><link>https://blog.youkuaiyun.com/qq_39554306/article/details/116130832</link><guid>https://blog.youkuaiyun.com/qq_39554306/article/details/116130832</guid><author>qq_39554306</author><pubDate>Sun, 25 Apr 2021 16:10:01 +0800</pubDate><description><![CDATA[浮动
视觉格式化模型，大体上将页面中盒子的排列分为三种方式：
1.常规流
2.浮动
3.定位
应用场景
1.文字环绕
2.横向排列
浮动的基本特点
修改float属性值为：
-left ：左浮动，元素靠上靠左
-right：右浮动，元素靠上靠右
默认值为none
1.当一个元素浮动后，元素必定为块盒（更改display为block）
2.浮动元素的包含块，和常规流一样，为父元素的内容盒
盒子尺寸
1.宽度为auto时，适应内容宽度
2.高度为auto时，适应内容宽度
3.margin为auto时，为0
4.]]></description><category></category></item><item><title><![CDATA[递归 + 力扣（链表反转，最近公共祖先，递增顺序搜索树）]]></title><link>https://blog.youkuaiyun.com/qq_39554306/article/details/116043816</link><guid>https://blog.youkuaiyun.com/qq_39554306/article/details/116043816</guid><author>qq_39554306</author><pubDate>Fri, 23 Apr 2021 10:14:02 +0800</pubDate><description><![CDATA[因为最近无次序刷力扣又刷到了当时的递归，每次看递归的代码都会有一定的理解，但隔了一段时间又没啥思路。
先来看一下递归的模版结构：
// JavaScript
function recur(level, param) { 
  // 递归的终止条件
  if (level &gt; MAX_LEVEL) { 
  
    return; 
  }
    // 处理当前层逻辑
  process(level, param); 
  　// 下探到下一层
  recur( level: level + 1, ]]></description><category></category></item><item><title><![CDATA[reduce()使用场景、用法总结]]></title><link>https://blog.youkuaiyun.com/qq_39554306/article/details/116020562</link><guid>https://blog.youkuaiyun.com/qq_39554306/article/details/116020562</guid><author>qq_39554306</author><pubDate>Thu, 22 Apr 2021 18:26:41 +0800</pubDate><description><![CDATA[先来看MDN上的解释：
reduce() 方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行)，将其结果汇总为单个返回值。
举个栗子：
const array1 = [1, 2, 3, 4];
const reducer = (accumulator, currentValue) =&gt; accumulator + currentValue;

// 1 + 2 + 3 + 4
console.log(array1.reduce(reducer));
// expected outpu]]></description><category></category></item><item><title><![CDATA[层叠]]></title><link>https://blog.youkuaiyun.com/qq_39554306/article/details/115955997</link><guid>https://blog.youkuaiyun.com/qq_39554306/article/details/115955997</guid><author>qq_39554306</author><pubDate>Wed, 21 Apr 2021 15:32:39 +0800</pubDate><description><![CDATA[层叠
声明冲突：同一个样式，多次应用到同一个元素
层叠：解决声明冲突的过程，浏览器自动处理（权重计算）
1
1.比较重要性
重要性从高到低：
作者样式表：开发者书写的样式
1）作者样式表中的！important样式
2）作者样式表中的普通样式
3）浏览器默认样式表中的样式
2.比较重要性
看选择器
总体规则：选择器选中的范围越窄，越特殊
具体规则：通过选择器，计算出一个4位数（x x x x）
1）千位：如果是内联样式，记1，否则记0
2）百位：等于选择器中所有id选择器的数量
3）十位：等于选择器中所有类]]></description><category></category></item><item><title><![CDATA[CSS画一个三角形]]></title><link>https://blog.youkuaiyun.com/qq_39554306/article/details/115952768</link><guid>https://blog.youkuaiyun.com/qq_39554306/article/details/115952768</guid><author>qq_39554306</author><pubDate>Wed, 21 Apr 2021 14:33:58 +0800</pubDate><description><![CDATA[&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;&lt;/title&gt;
    &lt;style type="text/css"&gt;
        /* css3绘制三角形 */
        .triangle{
            width: 0px;                           /*设置宽高为0，所以div的内容为空，从才能形成三角形尖角*/
            heig]]></description><category></category></item><item><title><![CDATA[轮播图原生JS项目解读复盘]]></title><link>https://blog.youkuaiyun.com/qq_39554306/article/details/115912470</link><guid>https://blog.youkuaiyun.com/qq_39554306/article/details/115912470</guid><author>qq_39554306</author><pubDate>Wed, 21 Apr 2021 08:57:03 +0800</pubDate><description><![CDATA[第一次看原生JS确实看的稀里糊涂的，就像看论文中给的代码一样，感觉什么都挺不容易的，那我们就慢慢看慢慢总结。首先这里给出源代码的链接：
轮播图源代码
首先是JS文件,并且重点来看看JS文件吧。
var timer = null,
    timerInv = null,
    window_width = 720,
    index = 0,
    flag = true,
    step = 0,
    img_count = 4,
    newLeft = 0,
    locatArr =]]></description><category></category></item><item><title><![CDATA[关于0.1+0.2 ！== 0.3]]></title><link>https://blog.youkuaiyun.com/qq_39554306/article/details/115760756</link><guid>https://blog.youkuaiyun.com/qq_39554306/article/details/115760756</guid><author>qq_39554306</author><pubDate>Fri, 16 Apr 2021 14:55:18 +0800</pubDate><description><![CDATA[alert( 0.1 + 0.2 ); // 0.30000000000000004

一个数字以其二进制的形式存储在内存中，一个 1 和 0 的序列。但是在十进制数字系统中看起来很简单的 0.1，0.2 这样的小数，实际上在二进制形式中是无限循环小数。
换句话说，什么是 0.1？0.1 就是 1 除以 10，1/10，即十分之一。在十进制数字系统中，这样的数字表示起来很容易。将其与三分之一进行比较：1/3。三分之一变成了无限循环小数 0.33333(3)。
使用二进制数字系统无法 精确 存储 0.1 或 ]]></description><category></category></item><item><title><![CDATA[JS 数组转化为字符串遇到的坑]]></title><link>https://blog.youkuaiyun.com/qq_39554306/article/details/115654916</link><guid>https://blog.youkuaiyun.com/qq_39554306/article/details/115654916</guid><author>qq_39554306</author><pubDate>Tue, 13 Apr 2021 10:11:24 +0800</pubDate><description><![CDATA[首先数组转为字符串有三种方法：

toString（）
toLocalString()
join()

数组中 toString() 方法能够把每个元素转换为字符串，然后以逗号连接输出显示，返回一个反映这个对象的字符串。
var a = [1,2,3,4,5,6,7,8,9,0];  //定义数组
var s = a.toString();  //把数组转换为字符串
console.log(s);  //返回字符串“1,2,3,4,5,6,7,8,9,0”
console.log(typeof s);  /]]></description><category></category></item><item><title><![CDATA[特征工程]]></title><link>https://blog.youkuaiyun.com/qq_39554306/article/details/108936336</link><guid>https://blog.youkuaiyun.com/qq_39554306/article/details/108936336</guid><author>qq_39554306</author><pubDate>Tue, 06 Oct 2020 11:11:55 +0800</pubDate><description><![CDATA[特征工程
属于数据科学中最有创造力的一部分。举一个简单的例子，判别胖与不胖的二分类问题。输入数据为X：身高和体重，标签为Y：胖和不胖。显然不能单纯的根据体重来判断一个人胖不胖，针对这个问题，一个经典的特征工程是BMI指数：BMI=weight/（height**2）。所以说特征工程就是通过X，创造出新的X‘。特征工程的基本操作有衍生（升维），筛选（降维）。其目的是最大限度的从原始数据中提取特征以供算法和模型使用


Kaggle上有一句非常经典的话，数据和特征决定了机器学习的上限，而模型和算法只是逼近这个上]]></description><category></category></item><item><title><![CDATA[力扣刷题笔记]]></title><link>https://blog.youkuaiyun.com/qq_39554306/article/details/108878955</link><guid>https://blog.youkuaiyun.com/qq_39554306/article/details/108878955</guid><author>qq_39554306</author><pubDate>Wed, 30 Sep 2020 08:08:36 +0800</pubDate><description><![CDATA[1.如何将矩阵转化为数组：
import itertools
jz=[
    [1,2,3],
    [2,3,4],
    [5,6,7]
]
cur=list()
for i in itertools.chain.from_iterable(jz):
    cur.append(i)
print(cur)

		# numpy
        import numpy as np
        row, col = len(nums), len(nums[0])
        return ]]></description><category></category></item><item><title><![CDATA[动态规划总结]]></title><link>https://blog.youkuaiyun.com/qq_39554306/article/details/108809864</link><guid>https://blog.youkuaiyun.com/qq_39554306/article/details/108809864</guid><author>qq_39554306</author><pubDate>Sat, 26 Sep 2020 11:28:16 +0800</pubDate><description><![CDATA[动态规划总结：
动态规划问题的一般形式就是求最值。
求解动态规划的核心问题是穷举。
动态规划问题一定具备最优子结构。
三要素：
重叠子问题，最优子结构，状态转移方程
核心：
状态转移方程：明确「状态」 -&gt; 定义 dp 数组/函数的含义 -&gt; 明确「选择」-&gt; 明确 base case。

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