无知的圆
码龄3年
  • 20,023
    被访问
  • 56
    原创
  • 98,363
    排名
  • 25
    粉丝
关注
提问 私信
  • 加入CSDN时间: 2019-11-20
博客简介:

无知的圆的博客

查看详细资料
  • 3
    领奖
    总分 285 当月 21
个人成就
  • 获得25次点赞
  • 内容获得13次评论
  • 获得182次收藏
创作历程
  • 41篇
    2021年
  • 15篇
    2020年
成就勋章
TA的专栏
  • 其他
    2篇
  • 秋招
  • 笔记
    11篇
  • JavaScript
    8篇
  • 面试收录
    2篇
  • 奇怪的输出题
    1篇
  • 算法
    16篇
  • 前端
    12篇
  • 浏览器
    1篇
  • HTML&CSS
    6篇
  • TypeScript
    2篇
  • 前端实例
    1篇
  • Axios
    1篇
  • Ajax
    1篇
  • Promise
    1篇
  • React
    3篇
  • 软件工程
    8篇
  • java
    3篇
  • 编译原理
    2篇
  • Docker
    1篇
兴趣领域 设置
  • 前端
    javascriptvue.jsreact.jswebpack前端框架
  • 后端
    node.js
  • 微软技术
    typescript
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

在Windows环境下安装nvm的踩坑记录

前言:以下是本人安装nvm(Windows环境)的一些踩坑记录,希望能帮助你少走弯路。安装路径出现空格或中文可能会导致命令行命令乱码使用nvm install + 版本号安装node之后,输入node --version显示node不是内部或外部命令,也不是可运行的程序或批处理文件。这种情况大概率是你安装完之后忘记输入命令使用对应的node了,记得输入nvm use + 版本号进行使用,输入nvm --list,显示 星号+版本号(例如 * 14.18.0)说明使用成功。出现nvm use [ver
原创
发布博客 2021.12.22 ·
210 阅读 ·
1 点赞 ·
0 评论

深入理解 JS 闭包的 9 大使用场景

文章目录深入理解 JS 闭包的 9 大使用场景1 返回值(最常用)2 函数赋值3 函数参数4.IIFE(自执行函数)5 循环赋值6 getter和setter7.迭代器(执行一次函数往下取一个值)8 首次区分(相同的参数,函数不会重复执行)9 缓存参考文章深入理解 JS 闭包的 9 大使用场景1 返回值(最常用) //以闭包的形式将 name 返回。function fn(){ let name = "hello" return function(){
原创
发布博客 2021.09.20 ·
63 阅读 ·
1 点赞 ·
0 评论

【奇怪的输出题】对象引用的问题

题目如下:var a = {n: 1};var b = a;a.x = a = {n: 2};console.log(a.x) console.log(b.x)答案是:undefined{n:2}解析:首先:a和b同时引用了{n:2}对象然后执行a.x = a = {n: 2}语句,尽管赋值是从右到左的但.的优先级比=高,所以这里会先执行a.x,相当于为a所指向的对象{n:1}新增了一个属性x然后执行a={n:2},相当于改变了a的指向,a不再指向对象{n:1},而
原创
发布博客 2021.08.20 ·
28 阅读 ·
0 点赞 ·
0 评论

【记面试遇到的坑】 对象使用数组的push方法后会发生什么?

奇怪的面试题最近碰到一道奇奇怪怪的面试题,对象使用数组的push方法后会发生什么?题目如下:var obj = { '2':3, '3':4, 'length':2, 'splice':Array.prototype.splice, 'push':Array.prototype.push}obj.push(1) obj.push(2) obj.push(3) console.log(obj);求最后打印出的的obj是什么?答案是:{ '2
原创
发布博客 2021.08.19 ·
102 阅读 ·
1 点赞 ·
0 评论

JS常用的循环遍历和它们的特性

目录JS常用的循环遍历for、forEach、for ...of for…insome everyfilter、mapfind、findIndexreduce、reduceRight参考文章JS常用的循环遍历for、forEach、for …of for…infor通常用于数组的循环 可以随时跳出循环,用break或者continueconst list = [1, 2, 3, 4, 5, 6, 7, 8, , 10, 11];let len = list.length;for
原创
发布博客 2021.08.19 ·
123 阅读 ·
0 点赞 ·
0 评论

ES6中展开运算符(...)的几种使用场景

ES6中展开运算符(…)的几种使用场景解构赋值数组的解构赋值:const [arg, arg1, ...arg2] = ['a', 'b', 'c', 'd']console.log(arg);console.log(arg1);console.log(arg2);//a//b//[ 'c', 'd' ]数组中按顺序匹配,将’a’赋值给arg,'b’赋值给arg1,剩下的元素以数组形式赋值给展开运算符作用的变量。对象的解构赋值:明确指出的赋值名字要相对。比如const中的a和b
原创
发布博客 2021.08.06 ·
240 阅读 ·
0 点赞 ·
0 评论

JavaScript继承的方式

目录JavaScript继承的方式1 原型链继承2 借用构造函数实现继承3 组合继承(最常用)4 原型式继承5 寄生式继承6 寄生组合式继承JavaScript继承的方式一共六种方式原型链继承、借用构造函数继承、组合继承、原型式继承、寄生式继承、寄生组合式继承。这部分可以看红宝书第四版P238-2491 原型链继承 function Animal(){ this.colors = ["black","while"]; } Animal.prototype.ge
原创
发布博客 2021.08.01 ·
11 阅读 ·
0 点赞 ·
0 评论

setTimeout()的参数问题

setTimeout()的参数问题执行时间setTimeout()方法接收两个参数,第一个参数可以是包含JavaScript代码的字符串,或者是一个函数。第二个参数表示等待多长时间的毫秒数将当前任务添加到队列中。setTimeout(“go()”, 1000); //等待1000毫秒执行go函数setTimeout(go, 1000); //等待1000毫秒执行go函数setTimeout(go(), 1000); //立即执行go函数,这种情况会忽略后面的等待时间带引号
原创
发布博客 2021.07.29 ·
578 阅读 ·
0 点赞 ·
0 评论

【leetCode 146】LRU 缓存机制(哈希表+双向链表)

目录思路不使用内置的LinkedHashMap ,使用哈希表+双向链表代码说明使用内置的LinkedHashMap思路具体的思路在LeetCode官方解答中有,里面还有动画和视频,推荐看不懂下面思路的可以去看一下。LRU 缓存机制可以通过哈希表辅以双向链表实现,我们用一个哈希表和一个双向链表维护所有在缓存中的键值对。双向链表按照被使用的顺序存储了这些键值对,靠近头部的键值对是最近使用的,而靠近尾部的键值对是最久未使用的。哈希表即为普通的哈希映射(HashMap),通过缓存数据的键映射到
原创
发布博客 2021.07.27 ·
151 阅读 ·
0 点赞 ·
1 评论

最长回文子序列的两种解法(动态规划和反转字符串)

1 题目链接LeetCode2 动态规划这个主要是用dp二维数组来解,应该是用的最多的方法了,这里就不再写了,有兴趣可以去看题解。题解3 反转字符串法这里是利用回文数的特征:正着读和反着读都是一样的,就可以把原有的字符串str1反转变成一个新的str2,然后求出这两个子序列的最长公共子序列数即可,这里就把问题转换为了最长公共子序列问题。例如:最长公共子序列的题目为:最长公共子序列关于这道题LeetCode里面有详细的解答,这里就不写解答和代码了。反转字符串法代码Java:clas
原创
发布博客 2021.07.24 ·
82 阅读 ·
0 点赞 ·
0 评论

JavaScript变量提升的坑

var ,未定义,letvarconsole.log(a)var a = 10结果:原因:上面代码在编译阶段变成了下面代码,可以看到var a = 10在编译阶段变成了两句话,一句为声明变量:var a,一句为给变量赋值: a=10。而声明变量提升到了当前作用域(全局作用域)的最前面,赋值变量的语句留在原地。由于变量a在输出前只声明而未定义,所以会输出undefined,而不是报错,也不是输出10。var aconsole.log(a)a = 10未定义console.l
原创
发布博客 2021.07.23 ·
55 阅读 ·
1 点赞 ·
1 评论

【双指针问题】已知链表中含有环,返回这个环的起始位置

双指针双指针一般可以分为两类,一类是快慢指针,一类是左右指针。快慢指针通常是用来解决链表中的问题,比如典型的是判断链表中是否含有环,左右指针主要是用来解决数组/字符串的问题,比如二分搜索等这道题主要是用快慢指针解决快慢指针初始化:两个指针都指向链表头节点head前进:快指针fast在前,慢指针在后判断链表是否有环链表的特点就是每个节点都只知道下一个节点,所以一个指针是无法判断是否有环的,如果链表中不含环,那么这个指针最终会遇到空指针null,这样就知道链表到头了但如果链表中有环,那就会
原创
发布博客 2021.07.22 ·
59 阅读 ·
0 点赞 ·
0 评论

浏览器渲染原理以及海量数据渲染的方法

目录浏览器的渲染原理为什么操作DOM会慢插入几万个 DOM,如何实现页面不卡顿?浏览器的渲染原理浏览器工作流程:构建DOM -> 构建CSSOM -> 构建渲染树 -> 布局 -> 绘制。首先解析接收到的文档,根据文档定义构建一棵DOM树,DOM树是DOM元素及属性节点组成的然后对CSS进行解析,生成CSSOM规则树根据DOM树和CSSOM规则树构建渲染树,渲染树的节点被称为渲染对象,渲染对象是一个包含有颜色和大小等属性的矩形,渲染对象和DOM元素先对应,但这种对应关系不
原创
发布博客 2021.07.20 ·
229 阅读 ·
0 点赞 ·
2 评论

纯CSS实现轮播图(附代码详细注释)

HTML 部分<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <titl
原创
发布博客 2021.07.17 ·
1629 阅读 ·
0 点赞 ·
0 评论

[学习笔记]TypeScript学习笔记

文章目录1 前期准备工作1.1 TypeScript的简介1.2 TypeScript与JavaScript的关系1.3 TypeScript的优点1.4 TypeScript开发环境搭建2 基本类型2.1 类型声明2.2 基本类型种类3 编译选项3.1 自动编译文件3.2 自动编译整个项目4 用webpack配置TS5 Babel6 面向对象6.1 前言6.2 类(class)6.3 面向对象的特点6.4 接口6.5 泛型(Generic)项目实战代码地址参考1 前期准备工作1.1 TypeScrip
原创
发布博客 2021.07.01 ·
144 阅读 ·
1 点赞 ·
1 评论

用TypeScript写一个简单的贪吃蛇小游戏

文章目录前言1 项目界面搭建2 完成Food类3 计分盘(ScorePanel)类4 Snake类的编写5 游戏控制器类(GameControl)项目效果项目地址前言这个项目是参考尚硅谷TypeScript教程写的,自己做了一些改进,目的是为了练习TypeScript的写法,学会用TS的思维去写代码。1 项目界面搭建html结构<body> <!--创建游戏的主容器 --> <div id="main"> <!--
原创
发布博客 2021.07.01 ·
163 阅读 ·
0 点赞 ·
1 评论

【学习笔记】Axios学习笔记

文章目录1 axios的理解和使用1.1 axios是什么?1.2 axios的特点1.3 axios常用语法2 axios源码分析2.1 源码目录结构2.2 源码分析2.2.1 axios与Axios的关系2.2.2 instance 与 axios 的区别?2.2.3 响应拦截器的执行顺序问题2.2.4 axios 运行的整体流程?2.2.5 axios 的请求/响应拦截器是什么?2.2.6. axios 的请求/响应数据转换器是什么?2.2.7 response 的整体结构2.2.8 error 的整
原创
发布博客 2021.07.01 ·
87 阅读 ·
0 点赞 ·
0 评论

【学习笔记】Ajax学习笔记

文章目录1 原生AJAX1.1AJAX简介1.2 XML简介1.3 AJAX的特点1.3.1 AJAX的优点1.3.2 AJAX的缺点1.4 AJAX的原理1.5 AJAX的使用1.5.1 核心对象1.5.2 使用步骤1.5.3 解决 IE 缓存问题1.5.4 AJAX请求状态2 jQuery 中的 AJAX2.1 get 请求2.2 post请求3 跨域3.1 同源策略3.2 如何解决跨域问题3.2.1 JSONP3.2.2 [CORS](https://developer.mozilla.org/zh-
原创
发布博客 2021.07.01 ·
12 阅读 ·
0 点赞 ·
0 评论

【学习笔记】Promise的学习笔记

文章目录1 Promise的理解1.1 promise是什么1.1.1理解:1.1.2 异步编程的例子1.2 为什么要使用Promise1.2.1 指定回调函数的方式更加灵活1.2.2 支持链式调用,可以解决回调地狱问题1.3 Promise 的状态1.4 Promise 对象的值1.5 promise的基本流程2 Promise的使用2.1 API2.2 Promise的几个关键问题3 自定义(手写)Promise4 async 与 await4.1 MDN文档4.2 async函数4.3 await表达
原创
发布博客 2021.07.01 ·
34 阅读 ·
0 点赞 ·
0 评论

【学习笔记】React拓展学习笔记

文章目录1. setState2 lazyLoad3 Hooks3.1 React Hook / Hook是什么?3.2 三个常用的Hook3.3 State Hook3.4 Effect Hook3.5 Ref Hook4 Fragment5 Context6 组件优化7 render props8 错误边界9 组件通信方式总结9.1 组件间的关系9.2 几种通信方式:9.3 比较好的搭配方式1. setStatesetState更新状态的2中写法setState(stateChange, [c
原创
发布博客 2021.07.01 ·
55 阅读 ·
0 点赞 ·
0 评论
加载更多