自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(92)
  • 收藏
  • 关注

原创 npm install报错:淘宝镜像证书过期

早在 2021 年,淘宝就发文称,npm 淘宝镜像已经从 http://registry.npm.taobao.org 切换到了 http://registry.npmmirror.com。2024年1 月 22 日,淘宝原镜像域名(http://registry.npm.taobao.org)的 HTTPS 证书正式到期,导致旧的 npm 淘宝镜像在使用时出错了。华为:https://mirrors.huaweicloud.com/repository/npm/

2024-07-10 11:27:29 528

原创 你不知道的Javascript “谜题”

你真的了解Javascript吗?

2024-05-31 17:31:25 820

原创 jest单元测试——项目实战

包括:什么是单元测试、jest的基本配置、快照测试、mock函数、常用断言、前端单测策略等等。。

2024-04-07 16:34:40 1290 2

原创 使用浏览器开发工具分析性能

使用浏览器开发工具进行网络及性能分析

2024-02-02 10:16:52 1157

原创 控制台npm start终止不了?

想结束控制台端口运行,但是Control+C不起作用,不管我敲多少遍,依旧没有任何动静,该怎么办?

2024-02-01 14:38:07 749 1

原创 Web3.0初探

如果说Web 2.0的用户产生了内容,那么在Web 3.0中,用户产生了平台,创造了内容并从中获取了价值,使用户成为网络的唯一所有者,摆脱了科技巨头和其他公司。

2024-01-31 15:14:26 1395

原创 单元测试工具JEST入门——纯函数的测试

- 开发人员为什么要做测试?不做会怎样?- Jest是什么?有什么用?怎么用?- 前端单元测试策略与原则

2024-01-30 20:03:03 987

原创 关于Redux的学习

redux 是一个独立专门用于做状态管理的 JS 库(不是 react 插件库),它可以用在 react, angular, vue 等项目中, 但基本与 react 配合使用。作用: 集中式管理 react 应用中多个组件共享的状态。

2022-08-12 10:08:33 193 1

原创 React package.json配置参数详解

package.json文件想必大家都不陌生,一般的项目根目录下都会有这个文件,文件中定义了项目所需要的各个模块,以及这个项目的配置信息,例如名称、版本、许可证等。通过执行npm install命令,可以自动下载项目所需要的模块,也就是配置项目所需的运行环境和开发环境。package.json 配置参数很多,大部分并不是必须的,一般都是name、version、main、author、dependencies、devDependencies这几个参数。...

2022-08-09 10:12:05 3109

原创 关于npm的那些事儿

npm是node官方提供的包管理工具,用来解决node代码部署的问题,安装Node.js的时候会自动安装对应的npm版本。关于npm install、npm install --save、npm install --save -dev与npm install -g的区别。

2022-08-01 15:51:24 396

原创 微前端的初探索

微前端是将Web应用由单一的应用转变为多个小型前端应用聚合为一的一种手段,是一种多个团队通过独立发布功能的方式共同构建现代化web应用的技术手段及方法策略,它不是单纯的前端框架或者工具,而是一套架构体系。...

2022-07-29 16:27:13 322

原创 React Hooks的深入学习

ReactHooks的出现,就标志着React不会存在无状态组件的情况,只有类组件和函数组件。

2022-07-21 19:37:10 241

原创 再次聊聊前端性能优化

之前写过关于前端性能优化的文章,但总觉得还是太笼统太敷衍,等到面试官问到为什么这样就会被绊住脚,今天就详细聊聊关于前端性能优化的点,以及到底为什么是这样。

2022-05-05 19:24:52 1007

原创 react如何使用@引入文件路径?

react如何使用@引入文件路径?问题: 最近忙于毕设,使用react脚手架搭建的项目,在引入文件时出现了下面的情况:预期效果:这样大大提升了代码的美观度,而且简洁明了。1、暴露配置文件react官方脚手架默认是将 webpack 配置隐藏起来了,在进行配置之前需要将 webpack 配置暴露出来。npm run eject# oryarn run eject会出现一个命令提示:这是一个单向操作,确认操作后不可逆转/返回?输入 y 回车成功之后 在项目根目录出现 config 文

2022-04-13 15:34:39 1956

原创 使用Echarts找不到自带china地图?

关于使用Echarts找不到自带china地图最近写的系统中有用到Echarts的地图,网上说需要引用Echarts自带的China地图import 'echarts/map/js/china.js'奈何 node_moudle 里面的 echarts 并没有map文件夹后来查阅资料发现是Echarts版本在作祟解决卸载掉原来的echarts版本:npm uninstall echarts安装echarts4.8版本npm install echarts@4.8 --save完美解

2022-04-01 19:12:13 1497

原创 解决:控制台使用nvm控制node版本时出现exit status 1与exit status 145

解决:控制台使用nvm控制node版本时出现exit status 1与exit status 145在搭建项目时,出现如图所示的问题:原因:status 1是因为权限不足status 145 安装nvm或者node文件本身或者路径错误解决:status 1:以管理员身份运行命令提示符status 145:①检查安装nvm路径与设置放置nodejs的路径或文件,是否出现空格或中文比如默认安装路径C:\Program Files中出现了空格,如果有,更改路径或文件夹名称后再使用nvm use

2022-01-21 10:35:08 8153

原创 浏览器的本地存储

浏览器的本地存储一、Cookie二、WebStorage1、localStorage2、sessionStorage三、IndexedDB四、总结浏览器的本地存储主要分为Cookie、WebStorage和IndexedDB,其中WebStorage又分为localStorage(本地存储)和sessionStorage(会话存储)。一、CookieCookie最开始并不是用于本地存储的,而是为了弥补HTTP在状态管理上的不足:HTTP是一个无状态的协议,客户端向服务器发送请求,服务器返回响应,但是

2021-11-16 18:52:20 1688

原创 JS链表中的快慢指针

快慢指针,顾名思义就是一快一慢的两个指针,判断链表是否有环的原理:如果链表中存在环,那么快慢指针在进入环后,因为存在速度差,两个指针迟早会相遇。判断链表中是否有环判断给定的链表中是否有环。如果有环则返回true,否则返回false。解题思路:利用快慢指针遍历数组,当快慢指针相遇时,则说明有环。function hasCycle(pHead){ if(pHead == null || pHead.next == null){ return false } let fast = pHead

2021-11-05 14:28:32 410

原创 再次聊聊浏览器缓存

能不能说一下浏览器缓存?强缓存协商缓存之前写过一篇强缓存与协商缓存的文章,经过后来一段学习,回头再看发现写的太杂乱,有点官方,所以打算再总结一篇。浏览器中的缓存作用分为两种情况,一种是需要发送HTTP请求,另一种是不需要发送。强缓存首先检查强缓存,关于强缓存的检查,就涉及到两个字段:在HTTP/1.0和HTTP/1.1当中,使用的字段是不同的。HTTP/1.0使用Expires,而HTTP/1.1使用Cache-Control。ExpiresExpires即为过期时间,存在于服务器返回的响应头

2021-11-01 17:12:43 160 1

原创 前端性能优化

前端性能优化前言前端性能优化的方法1、页面内容2、服务器3、Cookie4、CSS5、Javascript6、图片7、移动端前言首先来看看Network:DOMContentLoaded:DOM渲染完成时间Load:当前页面所有资源加载完成时间关于瀑布流:Queueing:浏览器将资源放入队列的时间Stalled:因放入队列时间而发生的停滞时间DNS Lookup:DNS解析时间Initial connection:建立HTTP连接的时间SSL:浏览器与服务器建立安全性连接的时间T

2021-09-09 19:57:52 215 1

原创 visibility:hidden 和 display:none

visibility:hidden 和 display:none 的区别1、继承:display不是继承属性,而visibility是继承属性。后代元素的visibility属性若存在,则不会继承; 若不存在,则会继承父元素的visibility的值。父元素的visibility为hidden但是子元素的visibility为visble,那么子元素依旧可见,子元素visibility属性不存在则子元素不可见。而父元素display属性设为none后,子元素全部不可见。2、空间:设置displa

2021-09-08 19:44:28 368

原创 根据数组中对象的某个属性值进行排序

根据数组中对象的某个属性值进行排序一个对象数组,单个对象里某个属性是数字,需要按这个属性的数字大小升序排序。背景: 项目表单根据编号id进行排序代码:var arr = [ { id: 1, message: "我是1" }, { id: 3, message: "我是3" }, { id: 2, message: "我是2" }, { id: 6, message: "我是6" }, { id: 4, message: "我是4" }, { id:

2021-09-07 11:18:42 2505

原创 JS:为什么 [] == ![] 返回 true ?

首先来看一段代码[] == ![] //true'' == ![] //true1 == ![] //false0 == ![] //true![] == false //true是不是有些云里雾里的?接下来看一张图片:在这段算法里,和 [] == ![] 匹配的是条件 7,所以调用 [] == ToNumber(false) 进行比较。在 9.3 节中,ToNumber(false) 等于 0,于是比较变为 [] == 0 。在此处因为 [] 是对象,比较过程走分支 9

2021-09-06 16:18:44 247

转载 总结Browser对象

Browser对象一、Window对象二、History对象三、Location 对象面试突然问到了这些对象的方法,一时半会想不起来几个,总结一下:一、Window对象Window对象方法:方法描述alert()显示带有一段消息和一个确认按钮的警告框。atob()解码一个 base-64 编码的字符串。btoa()创建一个 base-64 编码的字符串。blur()把键盘焦点从顶层窗口移开。clearInterval()取消由 setInterv

2021-08-17 17:12:58 177

原创 index为什么不能作为v-for的key?

index为什么不能作为v-for的key?一、为什么要使用key?二、index为什么不能作为v-for的key?一、为什么要使用key?key 的作用主要是为了高效地更新虚拟DOM。例如,在B和C之间插入F:Diff 算法默认执行的过程:这种做法C更新成F,D更新成C,E更新成D,最后再插入E,这样效率不高,且性能不够好。但如果使用了key给每个节点做一个唯一标识,Diff算法就能正确地识别这个节点,找到正确的位置插入新的节点。二、index为什么不能作为v-for的key?以下

2021-08-17 16:47:50 192

原创 牛客网刷题

8.2:

2021-08-13 16:43:00 132

原创 聊聊强缓存与协商缓存

聊聊强缓存与协商缓存前言一、强缓存二、协商缓存三、如何设置强缓存和协商缓存前言在学习强缓存与协商缓存之前,我们先聊聊什么是缓存?缓存是指浏览器(客户端)在本地磁盘中对访问过的资源保存过的副本文件。那么浏览器缓存有什么优点呢?减少重复请求数据,避免通过网络再次加载资源,节省流量。降低服务器的压力,提升网站性能。加快客户端加载网页的速度,提升用户体验。浏览器的请求流程:浏览器在第一次请求后缓存资源,再次请求时:1、浏览器获取该缓存资源的 header 中的信息,根据response

2021-08-13 16:42:10 1206

原创 JS输出字符串中出现最多次数的字符

JS输出字符串中出现最多次数的字符一道很简单的题。。由于面试看错了题目,导致面试不通过。。痛定思痛,把这道题专门写出来题目:输出字符串中出现最多次数的字符输入:'aabbccccdd'输出:'cccc'代码:function getLog(str) { var obj = {} //创建一个对象用于存储每个字符以及它出现的次数 var newstr = '' for (var i = 0; i < str.length; i++) { v

2021-08-13 12:02:53 471 2

原创 git如何解决冲突?

git如何解决冲突?一、什么情况下会产生冲突?二、冲突的解决三、撤销合并一、什么情况下会产生冲突?当多个开发者同时使用或者操作 git 中的同一个文件时:多个分支代码合并到一个分支;多个分支向同一个远端分支推送代码;push操作的本质就是将本地代码merge到远端分支;同理,pull操作的本质就是将远程分支merge到本地分支。所以在进行这两种操作时,也有可能存在冲突。有的时候解决了冲突并不意味着万事大吉,因为在某种情况下还会存在逻辑冲突。例如:用户A修改了函数返回值,用户B依旧使用旧的

2021-08-09 20:05:42 18585 2

原创 详解浏览器和Node的事件循环机制及区别

关于事件循环机制浏览器的事件循环机制浏览器的事件循环机制

2021-08-04 16:41:20 2535 1

原创 前端经典面试题:Foo与getName()

这是一道关于前端的很经典的面试题:function Foo() { getName = function () { console.log(1) }; return this}Foo.getName = function () { console.log(2)}Foo.prototype.getName = function () { console.log(3)}var getName = function () { conso

2021-08-02 15:33:33 777

原创 this指向问题与apply、call、bind的区别

this指向问题与apply、call、bind的区别一、this的指向二、apply、call、bind的区别主要应用场景一、this的指向要理解函数更改了this指向,就需要了解this的指向:内部函数的this指向objvar name="张三";var age=18;var obj={ name:'李四', objage:this.age, myfun1:function(){ console.log(this.name+''+this.age

2021-08-02 14:03:53 135

原创 深挖原型、原型链

原型与原型链一、原型1、构造函数2、原型对象3、实例对象关于原型和原型链,之前也有写过一篇文章,地址:https://blog.csdn.net/fish_skyyyy/article/details/113960342现根据自己所学到的新知识,再来深挖一下原型和原型链。一、原型关于原型,实际上就是prototype、proto、constructor的三角关系。想要了解原型,就要了解三个最基础的概念:构造函数、原型对象、实例对象。1、构造函数首先什么是构造函数?想要搞懂什么是构造函数,就要

2021-07-30 18:32:56 84

原创 关于JS中的重载和覆盖

JS中的重载和覆盖一、重载二、覆盖一、重载重载是函数名相同,参数不同。//第一次声明函数变量function sum(a, b) { return a+b}console.log(sum);console.log(sum(1,2));//第二次声明函数变量function sum(a, b, c) { return a+b+c}console.log(sum);console.log(sum(1,2,3));最终控制台输出结果为:二、覆盖重写又称覆盖,一

2021-07-30 10:24:05 911

原创 如何生成SSH key?

如何生成SSH key?一、检查是否存在SSH key二、生成SSH key三、将ssh key添加到GitHub中项目应用:SSH key提供了一种与GitHub通信的方式,通过这种方式,能够在不输入密码的情况下,将GitHub作为自己的remote端服务器,进行版本控制。一、检查是否存在SSH key在控制台输入:ls ~/.ssh如果提示没有该目录,或者该目录下没有公私钥文件,说明还未生成过密钥。如果有文件id_rsa.pub 或 id_dsa.pub,则直接进入步骤3将SSH key

2021-07-29 16:23:18 18419

原创 如何使用nvm管理node版本?

使用nvm管理node版本一、查看已有node二、安装其他版本node三、切换node版本四、给特定版本分配alias五、卸载node一、查看已有node如果在安装nvm之前,系统已经安装了node,那么此时这个版本的node会成为system版本。打开控制台,输入命令 :nvm ls-> systemiojs -> N/A (default)node -> stable (-> N/A) (default)unstable -> N/A (defau

2021-07-29 15:56:31 1770

原创 解决“Error: Too many re-renders. React limits the number of renders to prevent an infinite loop.”

解决“Error: Too many re-renders. React limits the number of renders to prevent an infinite loop.”问题:import {useState, Fragment} from 'react';import Add from './dialogAdd';function Top() { const [visible, setVisible] = useState(false); const isVisible

2021-07-27 11:00:29 13140 1

原创 export和export default的区别

React 中 export 和 export default 的区别export 与 export default均可用于导出常量、函数、文件、模块,你可以在其它文件或模块中通过 import+(常量 | 函数 | 文件 | 模块)名 的方式,将其导入,以便能够对其进行使用在一个文件或模块中,export、import可以有多个,export default仅有一个通过export方式导出,在导入时要加{ },export default则不需要,使用export default命令,为模块指定

2021-07-27 10:29:19 307

原创 Git中关于merge的简单使用

git merge命令用于将两个或两个以上的开发历史合并一起。一、开发分支(dev)上的代码达到上线的标准后,要合并到 master 分支切换到开发分支:git checkout dev拉一下代码:git pull切换到要合并的master分支:git checkout master将dev分支上的代码合并到master分支:git merge dev这样就合并好了!至于后续就看你自己推不推代码了将代码推到远程:git push -u origin master二、当master代

2021-07-22 14:43:03 844 2

原创 写完代码后搞错分支怎么办?

写完代码后搞错分支怎么办?未提交的情况下已提交的情况下血泪史:今天写项目需求,一半都写完了,发现自己的分支还在master上,那么已经写了代码后发现搞错分支了应该怎么办?未提交的情况下git add . (暂存在此分支上的改动)git stash (把暂存的改动提交到git的暂存栈)git checkout 本该提交代码的分支 (要是拉取新分支:git checkout -b 本该提交代码的分支)git stash pop (将暂存栈中的代码放出来)这样你的改动就跑到本该提交代码的分支

2021-07-13 18:04:04 761 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除