<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sbc_sbc的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sbc_sbc</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sbc_sbc]]></copyright><item><title><![CDATA[React Fiber Tree]]></title><link>https://blog.youkuaiyun.com/sbc_sbc/article/details/125622267</link><guid>https://blog.youkuaiyun.com/sbc_sbc/article/details/125622267</guid><author>sbc_sbc</author><pubDate>Tue, 05 Jul 2022 16:21:35 +0800</pubDate><description><![CDATA[React Fiber Node]]></description><category></category></item><item><title><![CDATA[nextjs create-react-app 兼容ie11]]></title><link>https://blog.youkuaiyun.com/sbc_sbc/article/details/123361619</link><guid>https://blog.youkuaiyun.com/sbc_sbc/article/details/123361619</guid><author>sbc_sbc</author><pubDate>Tue, 08 Mar 2022 20:06:02 +0800</pubDate><description><![CDATA[1.next.js兼容ie11

nextjs自带对于ie11的兼容，所以自己的代码是能够兼容ie11的https://nextjs.org/docs/basic-features/supported-browsers-features，主要需要考虑第三方包中不兼容ie11的情况。

针对没有兼容ie11的三方包，我们需要配置babel进行转换:

a.nextjs提供了.bablerc.jshttps://nextjs.org/docs/advanced-features/customizing-babe]]></description><category></category></item><item><title><![CDATA[http.createServer使用箭头函数报错]]></title><link>https://blog.youkuaiyun.com/sbc_sbc/article/details/116309202</link><guid>https://blog.youkuaiyun.com/sbc_sbc/article/details/116309202</guid><author>sbc_sbc</author><pubDate>Fri, 30 Apr 2021 20:57:17 +0800</pubDate><description><![CDATA[今天写代码发现一个小的问题，用箭头函数替换匿名函数出现错误。
具体情况如下：
用nodejs创建一个很简单的http服务器：
const http = require('http')

http.createServer(function(req,res){
    res.writeHead(200);
    res.end('hello');
}).listen(3000)

这样写没有问题，会在localhost:3000/生成对应页面，岁月静好。

但是把匿名函数换成箭头函数之后会报错。。。：
c]]></description><category></category></item><item><title><![CDATA[mac 配置 maven环境]]></title><link>https://blog.youkuaiyun.com/sbc_sbc/article/details/115976277</link><guid>https://blog.youkuaiyun.com/sbc_sbc/article/details/115976277</guid><author>sbc_sbc</author><pubDate>Wed, 21 Apr 2021 21:06:37 +0800</pubDate><description><![CDATA[这里的M3_HOME地址为你保存的解压之后的maven文件路径，可以直接拖动文件到终端中，这样可以直接显示出文件的路径。修改完毕之后需要按esc键然后输入:wq退出。来获取完整java路径，如我的java路径。下载需要的版本，然后解压到想要保存的地方。完成之后同样按esc并输入:wq保存。之后就可以愉快使用maven啦~如果出现相应地址则进行下一步。可以查看是否配置成功。]]></description><category></category></item><item><title><![CDATA[栈和队列_算法总结_JavaScript]]></title><link>https://blog.youkuaiyun.com/sbc_sbc/article/details/108179701</link><guid>https://blog.youkuaiyun.com/sbc_sbc/article/details/108179701</guid><author>sbc_sbc</author><pubDate>Fri, 28 Aug 2020 11:49:56 +0800</pubDate><description><![CDATA[min-stack


设计一个支持 push，pop，top 操作，并能在常数时间内检索到最小元素的栈。


思路：用两个栈实现，一个普通栈和一个最小栈，最小栈和普通栈同步操作，当push操作时，最小栈push min(最小栈顶，x)


/**
 * initialize your data structure here.
 */
var MinStack = function() {
    this._stack = [];
    this._minStack = [Infinity];
};

]]></description><category></category></item><item><title><![CDATA[链表_算法总结_JavaScript]]></title><link>https://blog.youkuaiyun.com/sbc_sbc/article/details/108117435</link><guid>https://blog.youkuaiyun.com/sbc_sbc/article/details/108117435</guid><author>sbc_sbc</author><pubDate>Fri, 21 Aug 2020 11:53:47 +0800</pubDate><description><![CDATA[链表问题在下认为首先要形成一套自己的模板方法，然后通过模板方法尽可能解更多题，之后再慢慢思考如何减少复杂度。
	链表最好能够在草稿纸上画出每一步的交换过程，如果题目很复杂流程很多，写代码的时候最好给自己加一些注释。
如删除重复项的类型题，我的思路就是使用map来辅助解题。

删除排序链表的重复项
我写的有点复杂了，没有仔细审题，用了map来存储，空间复杂度从 O 1 变成了 O n.


var deleteDuplicates = function(head) {
    var map =new Map]]></description><category></category></item><item><title><![CDATA[二叉树_算法总结_JavaScript]]></title><link>https://blog.youkuaiyun.com/sbc_sbc/article/details/107921745</link><guid>https://blog.youkuaiyun.com/sbc_sbc/article/details/107921745</guid><author>sbc_sbc</author><pubDate>Fri, 14 Aug 2020 16:37:59 +0800</pubDate><description><![CDATA[二叉树相关算法


	二叉树的前中后序遍历：
	
前序遍历：根 左 右 中序遍历：左 根 右  后序遍历：左 右 根

递归写法（前序遍历）（空间复杂度与系统堆栈有关，系统栈需要记住每个节点的值，所以空间复杂度为O(n)。时间复杂度应该为O(n)）：


var preorderTraversal = function(root) {
    var res = [];
    var preorderTraversalNode = (node)=&gt;{
        if(node == n...]]></description><category></category></item><item><title><![CDATA[setInterval 两次运行的时间小于设置的时间原理]]></title><link>https://blog.youkuaiyun.com/sbc_sbc/article/details/107961394</link><guid>https://blog.youkuaiyun.com/sbc_sbc/article/details/107961394</guid><author>sbc_sbc</author><pubDate>Wed, 12 Aug 2020 16:58:16 +0800</pubDate><description><![CDATA[setInterval 存在两次运行时间小于设置时间的情况。
使用setInterval()的问题在于，定时器代码可能在代码再次被添加到队列之前还没有完成执行，结果导致定时器代码连续运行好几次，而之间没有任何停顿。而JavaScript引擎对这个问题的解决是：当使用setInterval()时，仅当没有该定时器的任何其他代码实例时，才将定时器代码添加到队列中。这确保了定时器代码加入到队列中的最小时间间隔为指定间隔。
假设，某个onclick事件处理程序使用setInterval()设置了200ms间隔的定时]]></description><category></category></item><item><title><![CDATA[js 的六种继承总结]]></title><link>https://blog.youkuaiyun.com/sbc_sbc/article/details/107466378</link><guid>https://blog.youkuaiyun.com/sbc_sbc/article/details/107466378</guid><author>sbc_sbc</author><pubDate>Mon, 20 Jul 2020 20:56:12 +0800</pubDate><description><![CDATA[目录前言原型链继承(1/6)借用构造函数继承(2/6)组合继承(3/6)原型式继承(4/6)寄生式继承(5/6)寄生组合式继承(6/6)
前言
首先,对于面向对象语言来说,实现继承一般会实现接口继承和实例继承. 但是由于js没有函数签名,js中无法实现接口继承,所以一般所说的js继承是指实例继承.
原型链继承(1/6)
原型链继承的核心思想是 : 一个引用类型继承另一个引用类型的属性和方法:
var {log} = console;
//父类
function Person(){
    this.targ]]></description><category></category></item><item><title><![CDATA[vs code中编译 TypeScript]]></title><link>https://blog.youkuaiyun.com/sbc_sbc/article/details/107391951</link><guid>https://blog.youkuaiyun.com/sbc_sbc/article/details/107391951</guid><author>sbc_sbc</author><pubDate>Thu, 16 Jul 2020 20:17:11 +0800</pubDate><description><![CDATA[最近在尝试学习typescript, 发现对于新手来说在vs code中编译ts比较麻烦,搜集了网上的资料总结如下(亲测有效):
目录node 安装typescript 安装创建项目创建ts文件创建task.json创建launch.json编译文件
node 安装
首先要安装node.js ,这个网上都有,参考可以移步 node安装配置
typescript 安装
 npm install -g typescript

创建项目
创建一个放置项目的文件夹,并在文件夹目录下输入:
tsc -init

会生]]></description><category></category></item><item><title><![CDATA[html meta标签]]></title><link>https://blog.youkuaiyun.com/sbc_sbc/article/details/105828386</link><guid>https://blog.youkuaiyun.com/sbc_sbc/article/details/105828386</guid><author>sbc_sbc</author><pubDate>Wed, 29 Apr 2020 00:47:15 +0800</pubDate><description><![CDATA[&lt;meta&gt;标签:
1.&lt;meta&gt; 标签内的信息不会显示在页面中，定义&lt;meta&gt; 标签的主要目的是因为它对机器是可读的。
2.&lt;meta&gt; 标签有很多功能，它可以定义文档中的关键字，也可以对文档进行描述，还可以配合自身的属性设置网页的过期时间等等。当我们定义了页面的关键字或者描述信息后，搜索引擎蜘蛛（也就是常说的网络爬虫）就可以利用它们来搜索这个...]]></description><category></category></item><item><title><![CDATA[0.1+0.2]]></title><link>https://blog.youkuaiyun.com/sbc_sbc/article/details/104794495</link><guid>https://blog.youkuaiyun.com/sbc_sbc/article/details/104794495</guid><author>sbc_sbc</author><pubDate>Wed, 11 Mar 2020 14:26:44 +0800</pubDate><description><![CDATA[在看js 的过程中发现了0.1加0.2不等于0.3，查了半天资料，总结一下免得忘记了…
可以阅读英文原文参考资料：参考资料
这个问题不仅仅存在于js，其他很多语言也有这个问题，这是使用基于IEEE754 数值的浮点计算的通病。
1.小数在计算机中的表示
首先，小数在计算机中按照二进制保存，如 0.5 表示为  0.1（2的-1次方） ，0.125表示为 0.001 （2 的 -3次方）。但是小数如...]]></description><category></category></item><item><title><![CDATA[css双飞翼布局]]></title><link>https://blog.youkuaiyun.com/sbc_sbc/article/details/104618298</link><guid>https://blog.youkuaiyun.com/sbc_sbc/article/details/104618298</guid><author>sbc_sbc</author><pubDate>Sat, 07 Mar 2020 16:27:59 +0800</pubDate><description><![CDATA[1.保证css盒子模型size固定
2.position定位
3.清除浮动
保证盒子模型size固定
由于盒子模型元素的边框和内边距会撑开模型，例如：

解决方法是使用如下代码：
* {
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}


...]]></description><category></category></item><item><title><![CDATA[div块中图片缝隙]]></title><link>https://blog.youkuaiyun.com/sbc_sbc/article/details/104698025</link><guid>https://blog.youkuaiyun.com/sbc_sbc/article/details/104698025</guid><author>sbc_sbc</author><pubDate>Fri, 06 Mar 2020 16:06:40 +0800</pubDate><description><![CDATA[在进行页面的DIV+CSS排版时，遇到IE6（当然有时Firefox下也会偶遇）浏览器中的图片元素img下出现多余空白的问题绝对是常见的问题 该问题的解决方法也是「见机行事」，根据原因的不同要用不同的解决方法，这里把解决直接把解决image图片布局下边的多余空隙的BUG的常用方法归纳， 供大家参考。

1、将图片转换为块级对像
即设置img为：
display：block；

在本例中添加一组CS...]]></description><category></category></item><item><title><![CDATA[js label语句]]></title><link>https://blog.youkuaiyun.com/sbc_sbc/article/details/104672370</link><guid>https://blog.youkuaiyun.com/sbc_sbc/article/details/104672370</guid><author>sbc_sbc</author><pubDate>Thu, 05 Mar 2020 12:54:29 +0800</pubDate><description><![CDATA[使用 label 语句可以在代码中添加标签，以便将来使用。以下是 label 语句的语法：
label: statement

下面是示例：
start: for (var i=0; i &lt; count; i++) {
alert(i);
}

label 标签可以和break continue语句联合使用，例如：
var num = 0;
outermost:
for (var i=0; ...]]></description><category></category></item><item><title><![CDATA[Web开发人员学习路线图]]></title><link>https://blog.youkuaiyun.com/sbc_sbc/article/details/104341107</link><guid>https://blog.youkuaiyun.com/sbc_sbc/article/details/104341107</guid><author>sbc_sbc</author><pubDate>Sun, 16 Feb 2020 13:04:31 +0800</pubDate><description><![CDATA[作者丨Kamran Ahmed
来源丨https://roadmap.sh/
翻译丨大狮兄





]]></description><category></category></item><item><title><![CDATA[React井字棋后续功能完善]]></title><link>https://blog.youkuaiyun.com/sbc_sbc/article/details/104299138</link><guid>https://blog.youkuaiyun.com/sbc_sbc/article/details/104299138</guid><author>sbc_sbc</author><pubDate>Thu, 13 Feb 2020 17:20:30 +0800</pubDate><description><![CDATA[React的入门教程 完成后有6个小功能点的补充，实现后的代码：
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';

function Square(props) {
    return(
    &lt;button className="square" onClick={pro...]]></description><category></category></item><item><title><![CDATA[React井字棋 history  map (step, move)]]></title><link>https://blog.youkuaiyun.com/sbc_sbc/article/details/104267476</link><guid>https://blog.youkuaiyun.com/sbc_sbc/article/details/104267476</guid><author>sbc_sbc</author><pubDate>Tue, 11 Feb 2020 18:49:09 +0800</pubDate><description><![CDATA[最近看到React官网井字棋教程中有一段代码：
 const moves = history.map((step, move) =&gt; {
      const desc = move ?
        'Go to move #' + move :
        'Go to game start';
      return (
        &lt;li&gt;
        ...]]></description><category></category></item><item><title><![CDATA[蒙特卡洛（随机试验）法计算π]]></title><link>https://blog.youkuaiyun.com/sbc_sbc/article/details/103953468</link><guid>https://blog.youkuaiyun.com/sbc_sbc/article/details/103953468</guid><author>sbc_sbc</author><pubDate>Mon, 13 Jan 2020 10:51:01 +0800</pubDate><description><![CDATA[学校课程有道题要求计算π值，蒙特卡洛是利用随机试验求解问题的方法，课程要求随机10**8次
最开始的代码：
from random import random
from time import clock

times = 100000000
hits = 0
clock()
for i in range(1, times):
    x = random()
    y = random()
 ...]]></description><category></category></item><item><title><![CDATA[Java对象声明时:new与null的区别]]></title><link>https://blog.youkuaiyun.com/sbc_sbc/article/details/103929932</link><guid>https://blog.youkuaiyun.com/sbc_sbc/article/details/103929932</guid><author>sbc_sbc</author><pubDate>Fri, 10 Jan 2020 19:51:27 +0800</pubDate><description><![CDATA[作者：林子云
链接：https://www.zhihu.com/question/21468505/answer/18333632
来源：知乎
著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。
首先要明白，java里对象传递的时候，传递的都是引用（也就是对象的地址），这比传递整个对象高效的多。而基础类型，int，double等传递的才是值。
比如,(new ArrayList)...]]></description><category></category></item></channel></rss>