自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 VsCode格式化建议

vcode 格式化 eslint prettier

2022-06-16 13:36:44 560 1

原创 闭包的理解

闭包 - closure闭包是函数和词法作用域产生的一种词法绑定的现象.函数对象的[[scope]]属性,保存着该函数被定义的时候所能够直接访问的作用域对象。一般需要满足条件: 1. 函数嵌套; 2. 访问所处作用域。function foo() { var a = 1, b = 2; return function first() { debugger; console.log(b); return function l

2021-07-01 10:50:18 123

原创 函数式笔记

函数式编程目标:使用函数来抽象作用在数据之上的控制流及操作,从而在系统中消除副作用,减少对状态的改变。特点:声明式编程比如for循环命令式控制过程关注具体控制和状态变化,而map只关注输入和结果,用表达式来描述程序逻辑纯函数1.仅取决于提供的输入 2.不会造成或超出其作用域的变化. 比如修改全局对象或引用传递的参数,打印日志,时间等引用透明一个函数对于相同的输入始终产生相同的结果,那就是引用透明的不可变性存储不变数据,不可变数据就是创建后不能更改,但是对于对象、数组有可能改变

2021-07-01 10:46:11 82

原创 js基础拾遗

null 和 undifined 的区别null 是保留关键字,undefined 是 js 内置属性,局部作用域下可以被赋值,可以使用 void 0 来代替null 是原型链的终点Number(null) --> 0; Number(undefined) --> NaN;null 表示空,undefined 表示未声明或者声明了但是未赋值的变量typeof & instanceoftypeof主要用来判断基础类型,除了 null 返回 object(二进制,js 中前

2021-06-03 17:52:44 98

原创 flex的注意点

flex 现在是前端布局利器,简单的就不多说了,直接看阮一峰的 Flex 布局教程,我这里主要记录一下平时使用 flex 的一些注意点。注意点 1flex 会让容器元素变为 BFC,让子元素变为层叠上下文元素,可以看BFC 和 SC这篇文章,也会让子元素的 float、clear、vertical-align 属性失效。align-items 和 align-content这两个属性都是垂直居中的,区别就是对于单行还是多行。举个例子:<div class="flex"> &lt

2021-05-27 13:58:26 178

原创 BFC和SC

把这两个放在一篇文章里是因为这两个东西都叫上下文,那咱就一锅炖了_!BFC - block formatting context个人理解:独立容器形成条件根元素display:flex、inline-block、table-cellposition:absolute、fixedfloat 不为 noneoverflow 不为 visible特性先说下个人的理解吧:BFC 其实就是一个密闭的空间,不受其它元素影响,也不会影响其它元素BFC 内普通元素是垂直排列的,上下 margin

2021-05-26 16:54:59 226

原创 经典三栏布局

圣杯布局DOM 结构<div class="container"> <div class="center"></div> <div class="left"></div> <div class="right"></div></div>css.container { width: 100%; height: 100%; padding: 0 200px;

2021-05-26 16:52:15 71

原创 js隐式转换

背景: js 中使用 ==、+ 会进行隐式转换重点: Symbol.toPrimitive(input,preferedType?),针对的是对象转为基本类型,preferedType 默认为 number,也可以是字符串。装箱拆箱装箱 : 1 .toString() --> 实际上是个装箱过程 Number(1).toString() --> ‘1’; (注意前面的有个空格哦)拆箱 : toPrimitive(input,preferedType?)toPrimitive 规则:

2021-05-25 16:44:58 117

原创 你需要知道的数据结构

我又来了学习算法了,距离看完初级入门<<我的第一本算法书>>已经过去了小半年,为了进一步深入前端领域,再次从进入数据结构的海洋,这一次,我相信光~不定时更新,如有错误,还请指正。数组查询:O(1)增删:O(n)从 Chrome v8 源码看,JSArray 继承自 JSObject,且有两种存储模式 FastElements 和 SlowElements。FastElements:快数组存储结构 FixedArray,开辟一段连续的内存,直接使用索引定位,会根据申请

2021-05-20 16:19:59 59

原创 react-router填坑记录

react-router之前用 vue 开发时使用的是 vue-router,感觉大同小异,所以我一开始都没把 react-router 放在眼里,但是在实际使用过程中,啧啧,那叫一个打脸。不定时更新此文,记录容易遇到的坑。基本使用就不多说了,建议直接看官方文档。react-router 文档。另外,特此说明: 文章都是我边学习边记录总结的,如果错误,欢迎指正,互相交流,共同进步!注意点 1: Route 的 component 和 renderWhen you use component

2021-05-18 17:58:26 99

原创 终于,我也会手写Promise A+了

对于 Promise 其实本身并不陌生,可以说是经常使用了,面试题也做了不少,但是对于手动实现一个符合 promise A+规范,我还真的从来没有做过,特此花半天时间好好研究研究。Promise A+先来看看promise A+规范。我这仅过了四级的英语水平也是坑坑洼洼的看完了,建议还是都看一下,毕竟正统哈哈。我简单做了个总结,有错误的话望指正:state比较简单,就是有三种状态:pending 可以转为下面两种状态fulfilled 不可改变状态,必须有一个不能改变的 valuere

2021-05-18 14:58:55 161

原创 重温es6中的注意点(部分)

闲来无事,点开 es6 的文档看看,复习复习一些需要注意的地方,小做总结。暂时性死区// 1. let/constvar tmp = 123;if (true) { tmp = 'abc'; // ReferenceError let tmp;}// 2. 比较隐秘的死区function bar(x = y, y = 2) { // error return [x, y];}函数结构默认参数// 写法一, 对x和y分别设置默认值function

2021-05-10 17:35:17 102 2

原创 简单学习缓存淘汰策略

缓存策略常见的缓存策略有三种,FIFO(先进先出)、LFU(least frequently used)、LRU(least recently used)。这里主要学习一下 LRU - 最近最少使用算法,因为浏览器的缓存策略以及 vue 的 keep-alive 都是使用的这种算法。LRU核心思想是:如果数据最近被访问过,那么将来被访问的⼏率也更⾼,优先淘汰最近没有被访问到的数据。/** * 数组 + 对象实现 */class LRUCache { constructor(capac

2021-05-07 13:45:54 62

原创 手写js基础函数整理

都是常见的基础手写函数,没什么好解释的,记录一下。newfunction _new(fn, ...args) { let obj = Object.create(fn.prototype); // obj.__proto__ == fn.prototype let result = fn.apply(obj, args); const isFunction = typeof result === 'function'; const isObject = typeof re

2021-05-06 14:59:34 138

原创 JS中的dom相关基础

DOM 基础 api这方面的文章非常多,也没什么难度,建议阅读总结 js 常用的 dom 操作DOM 样式获取与修改element.style 只能获取到行内样式,但是可以修改element.currentStyle 和 window.getComputedStyle (element)不能修改,但是可以获取非行内样式getComputedStyle 兼容谷歌和火狐不兼容 ie<9,currentStyle 则相反,主要在低版本 IE 上使用// 兼容写法export const

2021-04-26 23:03:39 79

原创 javascript中的this

回顾一下,两年前刚刚进入这行的时候,也曾被 this 这个关键字折腾过,看了不少资料,基本上都提及到了 4 种规则:默认绑定默认绑定的 this 指向全局对象,严格模式下 this 指向 undefined。function foo() { // window console.log(this);}foo();/*-------------------------------*/'use strict';function foo() { // undefined

2021-04-26 14:44:31 45

原创 观察者和发布订阅模式

前言设计模式可以说是反反复复看了很多遍,从懵懂到现在在代码中经常使用,其实最重要的是设计模式里面的思想,不要被高大上的名字所唬住,在这里复习一下观察者模式和发布订阅模式。观察者模式一个简单场景:产品经理提新需求,搬砖侠勤奋搬砖// Publisher 添加移出观察者,通知观察者干啥class Publisher { observers = []; add(observer) { this.observers.push(observer); } re

2021-04-21 21:04:15 64

原创 位运算符的妙用

今天又看到了一个位运算符号的骚操作,知识是积累的过程,所以开贴记录一下,(▽)。复习在说骚操作前有必要还是先复习一下位运算相关的知识。原码最高位为符号位(0-正,1-负),其余为二进制数// 20000 0010// -21000 0010反码正数的反码就是自己,负数的反码,除了符号位,其他取反// 2的反码0000 0010// -2的反码1111 1101补码正数的补码就是自己,负数的补码是在反码之上+1补码的补码就是原码// 2的补码0000 0010//

2021-04-21 10:49:58 209

原创 重温React生命周期

前言在学习了虚拟 DOM 后,可以了解到虚拟->真实的转变过程其实就是:生命周期 render()生成虚拟 DOM,然后丢给 ReactDOM.render()挂在到真实 dom 上。在初始化和更新时,生命周期的 render 的操作对象都是虚拟 domReact 15 的生命周期挂载constructor()componentWillMount()render()componentDidMount()更新componentWillReceiveProps(nextP

2021-04-20 16:47:51 93

原创 关于React虚拟dom

JSXJSX本质上是JavaScript的语法拓展JSX能够在JavaScript中生效得益于babel的加工处理,转化为React.createElement(type, config, children),从而转化为React.createElement// 源码export function createElement(type, config, children) { // 用于后面for...in提取存储元素属性 let propName; // 用来存储config中

2021-04-20 13:46:27 85

原创 重温react的api

自学react把React的官方文档看了好多遍,再来温习一下api吧。组件Component,PureComponent,memo,forwardRef,lazy,Suspense,Fragment,Profiler,StrictMode工具createElement,cloneElement,createContext,createRef,isValidElement,children - map;forEach;count;toArray;onlyReact.createElement(

2021-04-19 11:30:27 63

原创 mobx新手初体验

mobx 初体验最近刚刚从vue技术栈转到react阵营,公司的技术选型是honeycomb,一个基于react和mobx的前端框架,所以我不得不花一天时间去看mobx的官方文档,记录下自己的学习。mobx 5创建一个仓库:import { observable, computed, action, runInAction } from 'mobx';class Store { @observable todo = [ { id: 0, name: 'x' },

2021-04-07 19:58:58 101

原创 自用Git手册

前言本文主要记录一些工具命令,以及平时可能不常用但是比较重要的概念及命令。具体的理解自然是在头脑中最好,建议阅读的朋友可以看一看参考链接中的文章,我觉得都很不错,也参考了其中不少见解,反正目前我碰到git的问题基本都能解决。基本配置# 全局配置git config --global user.name '94yk'git config --global user.email 'xxx@163.com'# 常用别名git config --global alias.co checkout

2021-04-01 23:17:50 183

空空如也

空空如也

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

TA关注的人

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