自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Javascript手动实现底层原理

手动实现Javascript底层原理

2020-11-05 16:40:58 1039 1

原创 Javascript底层原理总结

Javascript底层原理、面试题、算法、浏览器、dom等相关

2020-10-22 13:12:29 6007 2

原创 react框架总结

React.js的技术点总结

2018-11-23 14:15:31 32864 4

原创 总结ssh key配置及git的使用

首先使用git之前先在电脑上配置ssh key打开终端 mac快捷键command+空格输入终端 window快捷键window+r 输入cmdgit config user.name 查看用户名git config user.email 查看邮箱地址如果你要修改用户名和邮箱git config --global user.name "username" 修改用户名git ...

2018-08-17 14:18:18 3552 1

原创 qs-一个序列化和反序列化的JavaScript库

qs.parse

2023-11-23 14:31:48 203

原创 封装一个常用的Enum

封装Enum

2023-08-10 17:58:42 190

原创 前端进阶之React原理、源码解读-下篇

不折腾的前端,和咸鱼有什么区别!

2022-02-22 17:37:04 246

原创 前端进阶之React原理、源码解读-上篇

不折腾的前端,和咸鱼有什么区别!

2022-02-17 18:32:44 786

原创 前端进阶之TS总结

TS知识点总结

2022-01-11 20:02:11 3950

原创 前端进阶之React VDom的理解

1.虚拟 DOM通过 3 个要点讲解虚拟 DOM:描述浏览器的渲染过程 真实 DOM 操作昂贵,所以需要虚拟 DOM Diff简要做了什么,key在当中扮演什么角色1.1要点:浏览器的渲染过程创建 DOM 树。用 HTML 解析器分析 HTML 元素,创建一棵 DOM 树。 创建 CSS 规则树(CSS rule tree)。用 CSS 解析器解析 CSS 文件和inline样式,生成页面的样式表。 创建 Render 树。将 DOM 树和 CSS 规则树关联起来,构建 Ren...

2022-01-08 10:49:28 462

原创 前端进阶之PromiseA+规范

PromiseA+规范文档术语promise 是一个有then方法的对象或者是函数,行为遵循本规范 thenable 是一个有then方法的对象或者是函数 value 是promise状态成功时的值,也就是resolve的参数, 包括各种数据类型, 也包括undefined/thenable或者是 promise reason 是promise状态失败时的值, 也就是reject的参数, 表示拒绝的原因 exception 是一个使用throw抛出的异常值规范Promise Stat.

2021-12-26 10:54:39 703

原创 闭包的概念及应⽤场景

定义 闭包是指那些能够访问⾃由变量的函数。⾃由变量是指在函数中使⽤的,但既不是函数参数也不是函数局部变量的变量。 从理论⻆度:所有的函数都是闭包。因为它们都在创建的时候就将上层上下⽂的数据保存起来了。哪怕是简单的全局变量也是如此,因为函数中访问全局变量就相当于是在访问⾃由变量,这个时候使⽤最外层的作⽤域。 从实践⻆度:以下函数才算是闭包:即使创建它的上下⽂已经销毁,它仍然存在(⽐如,内部函数从⽗函数中返回)在代码中引⽤了⾃由变量 应用场景1.柯⾥化函数柯⾥化的⽬的在于:

2021-12-14 11:45:49 1154

原创 Docker、Dockerfile基本使用

基本命令Linux安装dockeryum install -y yum-utilsyum-config-manager \\ --add-repo \\ <https://download.docker.com/linux/centos/docker-ce.repo># 安装最新的dockeryum install docker-ce docker-ce-cli containerd.io# 安装执行版本yum list docker-ce --showd

2021-11-28 11:02:34 215 2

原创 Javascript模块规范(CommonJS、AMD、CMD、ESM)

​CommonJSnode.js的模块系统,就是参照CommonJS规范实现的。在CommonJS中,有一个全局性方法require(),用于加载模块。假定有一个数学模块math.js,就可以像下面这样加载。var math = require('math');math.add(2,3); // 5 CommonJS的特点所有代码都运行在模块作用域,不会污染全局作用域; 模块是同步加载的,即只有加载完成,才能执行后面的操作; 模块在首次执行后就会缓存,再次加载只返回缓存结果,如

2021-11-26 17:34:30 1068

原创 nodejs-websocket简单实现多人聊天

文件目录如下:使用nodemon热更新启动server.js目的是在局域网内能访问到聊天界面nodemon server.js代码如下const Koa = require('koa')const path = require('path')const static = require('koa-static')const Router = require('koa-router')let router = new Router()const app = ...

2021-09-24 18:07:55 752

原创 koa-static静态托管

文件目录如下:使用nodemon热更新启动server.jsnodemon server.js代码如下const Koa = require('koa')const path = require('path')const static = require('koa-static')const Router = require('koa-router')const request = require('request')let router = new Router()c..

2021-08-16 15:53:40 123

原创 实现html转pdf、多个pdf生成zip

插件: jspdf html2canvas jszip file-saver 实现:先写好html模版 捕捉dom通过html2canvas生成图片 通过jspdf生成pdf pdf先不实例化,等所有pdf生成完之后util.tsimport jsPDF from 'jspdf'import html2canvas from 'html2canvas'export const printPDF = async (domClassName

2021-08-12 18:09:47 587

原创 react native实现文件下载、编辑、上传功能

插件:react-native-fsGitHub连接:https://github.com/itinance/react-native-fs#readme实现:文件下载保存到本地 读取、编辑文件 上传文件 删除文件API参考:pathAPI```JavaScriptMainBundlePath (String) 主包目录的绝对路径(在 Android 上不可用)CachesDirectoryPath (String) 缓存目录的绝对路径ExternalCachesDire

2021-07-15 18:28:58 2276

原创 React Native剪贴板功能

getString: 读取剪贴板内容setString:设置剪贴板内容import React from 'react'import { Clipboard, TouchableOpacity, Text,Toast } from 'react-native'function index(){ return ( <TouchableOpacity onPress={()=>{ Clipboard.set.

2021-06-21 17:47:19 203

原创 浏览器页面呈现与浏览器缓存

浏览器相关知识点

2021-03-15 11:09:16 332

原创 前端进阶之垃圾回收机制

概念原始数据类型是存储在栈空间中的,引用类型的数据是存储在堆空间中的。不过有些数据被使用之后,可能就不再需要了,我们把这种数据称为垃圾数据。如果这些垃圾数据一直保存在内存中,那么内存会越用越多。所以我们需要对这些垃圾数据进行回收,以释放有限的内存空间。这时候就引入了垃圾回收机制。栈垃圾回收当函数执行结束,JavaScript 引擎通过向下移动ESP指针(记录调用栈当前执行状态的指针),来销毁该函数保存在栈中的执行上下文(变量环境、词法环境、this、outer)。fun..

2021-03-15 09:49:51 773

原创 前端进阶之原型、原型链

Javascript底层原理之原型、原型链

2020-11-10 18:12:01 514

原创 JS event loop 事件循环

javascript是一门单线程的非阻塞的脚本语言。javascript引擎就是通过event loop(事件循环)来实现“非阻塞”的。正文我们知道,当我们调用一个方法的时候,js会生成一个与这个方法对应的执行环境(context),又叫执行上下文。这个执行环境中存在着这个方法的私有作用域,上层作用域的指向,方法的参数,这个作用域中定义的变量以及这个作用域的this对象。 而当一系列方法被依次调用的时候,因为js是单线程的,同一时间只能执行一个方法,于是这些方法被排队在一个单独的地方。这个地方被

2020-11-04 11:53:55 455

原创 前端进阶之React 15的diff和React16的区别

diff算法与React虚拟dom

2020-10-26 15:59:43 2371

原创 script标签中async和defer的区别

script标签中没有 defer 或 async属性时,浏览器会立即加载并执行指定的脚本,也就是同步的方式从上而下加载并执行代码script中async和defer属性都为异步加载defer:可选脚本的加载过程和文档加载是异步发生的,脚本加载完会被延迟到整个页面都解析完毕后再运行async:可选脚本的加载过程和文档加载也是异步发生的,但脚本下载完成后会停止HTML解析,执行脚本,脚本解析完继续HTML解析标记为 async 的脚本并不保证按照指定它们的先后顺序执行如图:.

2020-09-14 16:35:38 155

原创 vscode连接服务器代码进行调试

1.方便起见配置ssh文件夹下面的config文件## 输入ss快捷进入服务器120.00.100.200:27017Host ss hostname 120.00.100.200 User root Port 27017 IdentityFile ~/.ssh/id_rsa2.vscode 的扩展中安装Remote Development套件3.使用插件连接服务器在编辑器里面按command+p 打开搜索框搜索并选择第一个>Rem..

2020-09-10 17:05:29 1046

原创 pm2常用命令

1.安装npm install -g pm22.启动($代表终端输入的指令)$ pm2 start ./app.js # 启动$ pm2 start ./app.js --name my-api #新建进程3.重启$ pm2 restart app_name|app_id # 重启指定的进程$ pm2 restart all # 重启所有进程,相当stop+start$ pm2 reload all # 0秒停机重载进程 (用于不间断进程)4.查看$ pm2

2020-09-07 14:26:01 261

原创 Nodejs之Buffer数据转ReadSteam

当要处理的是一个文件时stream = fs.createReadStream('./content.txt')返回一个readStream(文件读取流,输入流)对象。(可读流)当处理的是一个Buffer时,用createReadStream就会报错fs.createReadStream不是用来做Buffer到ReadStream的转换的。虽然它接受一个Buffer,但Buffer里面放的仍然应该是一个文件路径。它只不过帮你做了文本解码。正确的Buffer转ReadStream的写

2020-09-07 11:29:38 3630

原创 React16中render和hydrate的区别

render()ReactDOM.render(<App />, document.getElementById('root'));render话不多说就是渲染的意思,官方解释:在提供的container里渲染一个 React 元素,并返回对该组件的引用(或者针对无状态组件返回null)。 如果 React 元素之前已经在container里渲染过,这将会对其执行更新操作,并仅会在必要时改变 DOM 以映射最新的 React 元素 如果提供了可选的回调函数,该回调将在...

2020-09-02 20:33:13 4684

原创 查看本地Node占用内存

查看内存node占用内存新建文件process.jsprocess.memoryUsage()终端执行process.js

2020-09-02 09:45:23 2760

原创 mac用户丢失管理员身份

起因:试图编辑mac电脑默认用户资料,比如试图改用户名、试图改HOME路径之类的,有很高比率可能导致该用户丧失管理员权限。随后悲剧就开始了,所有需要管理员权限认证的地方,比如安装了一个新软件,在弹出的认证窗口中,无论如何输入用户名和密码,都无法授权通过。此时在系统设置->用户及用户组中,会发现该用户选项卡中“允许用户管理这台电脑”前面的勾选已经不见了。当然这时候因为无法授权修改用户权限,因此也无法重新勾选上这个选项。直接打开终端,虽然用没了管理员权限,但是在终端通过sudo命令还是可以执行roo

2020-08-21 09:44:29 856 4

原创 巧妙的通过promise.all节省接口的响应时间

在业务中难免会出现需要等待三四个接口返回之后再处理后续的代码,这个时候一般都会使用async/await来进行处理,那么就会有一个问题:先通过promise来模拟三个接口定时模拟每个接口需要花费的时间。 componentDidMount() { this.PageInit(); } PageInit = async () => { const oldTime = moment(); const fetch = async () => {

2020-08-06 10:45:45 1440

原创 React Hooks使用实例

使用hooks注意事项:不能将 hooks 放在循环、条件语句或者嵌套方法内。react 是根据 hooks 出现顺序来记录对应状态的。 只在 function 组件和自定义 hooks 中使用 hooks。 命名规范: useState 返回数组的第二项以 set 开头(仅作为约定)。 自定义 hooks 以 use 开头(可被 lint 校验)。 React 中提供的 hooks: useState:setState useReducer

2020-07-22 16:41:42 1535

原创 React、umi和dva之间的关系

前言react(https://react.docschina.org/)umi--路由配置(https://umijs.org/)dva--数据流方案(https://dvajs.com/guide/)Umi和Dva都是基于React的框架,Umi主要以路由为主,Dva主要管理数据流。Antd pro(https://pro.ant.design/docs/getting-started-cn)集成了umi、dva、antd的完整前端脚手架关于UmiJS框架umi是一个可插拔的企业

2020-07-22 10:33:09 15403

原创 Taro小程序单位转化和无法使用全局样式

1.界面兼容设计稿及尺寸单位在 Taro 中尺寸单位建议使用px、百分比 %,Taro 默认会对所有单位进行转换。在 Taro 中书写尺寸按照 1:1 的关系来进行书写,即从设计稿上量的长度100px,那么尺寸书写就是100px,当转成微信小程序的时候,尺寸将默认转换为100rpx,当转成 H5 时将默认转换为以rem为单位的值。如果你希望部分px单位不被转换成rpx...

2020-07-21 13:22:27 1700

原创 webpack的loader和plugin的区别

Loader用于对模块源码的转换,loader描述了webpack如何处理非javascript模块,并且在buld中引入这些依赖。loader可以将文件从不同的语言(如TypeScript)转换为JavaScript,或者将内联图像转换为dataURL。比如说:CSS-Loader,Style-Loader等。loader的使用很简单:在webpack.config.js中指定loader。module.rules可以指定多个loader,对项目中的各个loader有个全局概览。load.

2020-06-17 19:57:59 4359

原创 前端路由、后端路由、react-router区别

后端路由:后端路由又可称之为服务器端路由,因为对于服务器来说,当接收到客户端发来的HTTP请求,就会根据所请求的相应URL,来找到相应的映射函数,然后执行该函数,并将函数的返回值发送给客户端。对于最简单的静态资源服务器,可以认为,所有URL的映射函数就是一个文件读取操作。对于动态资源,映射函数可能是一个数据库读取操作,也可能是进行一些数据的处理,等等。然后根据这些读取的数据,在服务器端就使用相应的模板来对页面进行渲染后,再返回渲染完毕的页面。这种方式在早期的前端开发中非常普遍,比如京东页面就是个后端路由

2020-06-17 19:35:09 824

原创 react之高阶组件(HOC)

定义高阶组件(HOC)是 React 中用于重用组件逻辑的高级技术。 HOC 本身不是 React API 的一部分。 它们是从 React 构思本质中浮现出来的一种模式。具体来说,高阶组件是一个函数,能够接受一个组件并返回一个新的组件。理解: 一类特别的函数a. 情况 1: 参数是函数b. 情况 2: 返回是函数常见的高阶函数:a. 定时器设置函数b. 数组的 map()/filter()/reduce()/find()/bind()c. react-redux 中的 connec

2020-06-08 18:01:50 423

原创 react之纯函数、函数组件

纯函数 Pure Function定义:一个函数的返回结果只依赖于它的参数,并且在执行的过程中没有副作用,我们就把该函数称作纯函数。特点1. 函数的返回结果只依赖于它的参数。let foo=(a, b)=>a+bfoo(1,2) //=32. 函数执行过程里面没有副作用。什么是副作用除了修改外部的变量,一个函数在执行过程中还有很多方式产生外部可观察的变化,比如说调用 DOM API 修改页面,或者你发送了 Ajax 请求,还有调用 window.reload 刷新浏览器,

2020-06-08 16:59:53 4381

原创 Object.keys()的顺序问题

在js中 基本数据类型用全等判断是否相等有不严谨的时候+0 === -0js中打印为true,我们期望是falseNaN === NaNjs中打印为false,我们期望是true所以在object.is()方法中解决解决+0 === -0 为true,我们可以通过: 1/(+0)结果为Infinity, 1/(-0)结果为-Infinity 而Infinity === -Infinity为false。所以当a === b时,且1 / x === 1 /..

2020-06-08 16:15:11 1550

空空如也

空空如也

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

TA关注的人

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