02 2021 档案
摘要:1、没有参数 同步任务 2、参数为0 主线程执行完,优先执行 3、参数大于0 正常延迟执行
阅读全文
摘要:常考的 this指向, 原型,原型链, promise与setTimeout执行顺序, 前端性能优化, call,apply,bind, 闭包,懒加载, bfc, 基础数据相关, 如何捕获前端异常, react声明周期, Fiber, hooks应用, es6用过哪些东西, 深拷贝,浅拷贝, web
阅读全文
摘要:ios设备:准备mac电脑和iphone手机 使用 Lightning 数据线将 iPhone 与 Mac 相连 iPhone 开启 Web 检查器(设置 -> Safari -> 高级 -> 开启 Web 检查器) iPhone 使用 Safari 浏览器打开要调试的页面 Mac 打开 Safar
阅读全文
摘要:假设你正在爬楼,需要 n 阶才能到达楼顶,每次可以爬 1 到 2 个台阶,你有多少种方法可以爬到楼顶呢?
阅读全文
摘要:请看 http1.0,http1.1,http2.0 这篇文章
阅读全文
摘要:普通函数 function person(){ } 箭头函数 const person = () =>{ } 两者区别 1、写法不同:普通函数要写function,箭头函数不用; 2、声明方式不同:普通函数可以是声明式的,也可以是赋值式,而箭头函数只能是赋值式的; 3、this指向不同:普通函数有原
阅读全文
摘要:Webpack 的运行流程是一个串行的过程,从启动到结束会依次执行以下流程 : 初始化参数:从配置文件和 Shell 语句中读取与合并参数,得出最终的参数。 开始编译:用上一步得到的参数初始化 Compiler 对象,加载所有配置的插件,执行对象的 run 方法开始执行编译。 确定入口:根据配置中的
阅读全文
摘要:1、创建顶点缓冲区 2、进入顶点着色器 3、图元装配,形成三角形 4、光栅化,形成离散的片源 5、进入片元着色器 6、模板测试 7、深度测试 8、混合,透明不透明 9、输出帧缓冲 10、渲染
阅读全文
摘要:一、接口请求方面 1、减少Http请求 2、使用服务端渲染 3、静态资源使用CDN 4、使用浏览器缓存 二、代码方面 1、css引用放在头部,js引用放到底部 2、使用事件委托 3、减少重绘重排的过程 4、减少if else使用switch 5、减少dom操作 6、使用图片懒加载 二、webpack
阅读全文
摘要:instanceof 运算符用于测试构造函数的 prototype 属性是否出现在对象原型链中的任何位置 function instance_of(obj, Obj) { obj = obj.__proto__; let Obj_Prototype = Obj.prototype; while (t
阅读全文
摘要:简单理解就是将数据计算切片处理,渲染完一部分之后将主线程交回浏览器渲染UI,然后再次执行逻辑
阅读全文
摘要:1、受控组件 /** * 受控组件 * react组件中 维护一套state,通过修改state会触发ui层面更新 * 用户通过ui组件修改本身的值,可以通知到state进行变化 * 和vue的双向绑定有点类似 */ class Input extends React.Component { sta
阅读全文
摘要:一、闭包概念 由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,闭包就是能够读取其他函数内部变量的函数。所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。 function f1() { var n = 999; function f2() { console.l
阅读全文
摘要:1、单一原则:负责单一的页面渲染 2、多重职责:负责多重职责,获取数据,复用逻辑,页面渲染等 3、明确接受参数:必选,非必选,参数尽量设置以_开头,避免变量重复 4、可扩展:需求变动能够及时调整,不影响之前代码 5、代码逻辑清晰
阅读全文
摘要:首先了解一个造成不能立即生效的原因,setState异步的原因是因为react的监听事件为合成事件,state执行过程中会经历一个生命周期函数,执行多个setState会被合并,提升性能,下面几种方式可以避免我们的问题: shouleComponentUpdate componentWillUpda
阅读全文
摘要:一、首先了解一下高阶组件的基本概念 高阶组件(HOC,Higher-Order Components)不是组件,而是一个函数,它会接收一个组件作为参数并返回一个经过改造的新组件 const EnhancedComponent = higherOrderComponent(WrappedCompone
阅读全文
摘要:移步这位同学的博客,写的不错 自己跟着写了一遍,基本没啥问题了 原生JS实现最简单的图片懒加载
阅读全文
摘要:css3可以进行GPU加速,主要有一下几个属性 transform opacity filter will-change 用处: 可以减少CPU消耗,增加GPU渲染,提升页面渲染效果 注意: 尽量减少使GPU加速,因为加速后悔占用内存,使用不当可能使页面变卡 GPU 渲染会影响字体的抗锯齿效果
阅读全文
摘要:1、BFC定义 BFC:(Block formatting context)BFC是格式化上下文,形成一个独立的渲染区域,让处于BFC内部的元素和外部元素相互隔离,使内外元素的定位不会相互影响 2、如何形成BFC position:absolute或fixed display:inline-bloc
阅读全文
摘要:先说一下构造函数:函数用来初始化(new运算符)一个新建的对象, 可以调用函数中this 箭头函数不能通过new的方式调用 function Person(name) { this.name = name; } Person.prototype.age = '25'; var p = new Per
阅读全文
摘要:一、选择器 id选择器:#id 类选择器:.id 标签选择器:div 相邻选择器:h1+p 子选择器:ul>li 后代选择器:li a 通配符选择器:* 属性选择器:a[id='id'] 伪类选择器:a:hover,li:nth-child 二、选择器优先级 !important >行内样式 > I
阅读全文
摘要:一、link 和@import语法 <link href="style.css" rel="stylesheet"> <style type="text/css"> @import url(style.css); </style> 三、link与@import区别 1、引入的内容不同 link:除了
阅读全文
摘要:创建型 单例模式 原型模式 工厂模式 抽象工厂模式 建造者模式 结构型 适配器模式 装饰器模式 代理模式 外观模式 桥接模式 组合模式 享元模式 行为型 观察者模式 迭代器模式 策略模式 模板方法模式 职责链模式 命令模式 备忘录模式 状态模式 访问者模式 中介者模式 解释器模式 在这里就不一一举例
阅读全文
摘要:一、数据类型 1、基础类型:null,undefined,string,number,boolean,bigint,symbol; 2、引用类型:object,array等都算是引用类型; 二、两种类型之间的区别 1、基础类型:存储在栈内存中,大小固定,方便快速查找; 2、引用类型:存储在堆内存中,
阅读全文
摘要:做项目时间长了,尤其项目做得越多就会进行思考,有哪些进行优化的地方,一段时间之后回看自己的代码,就会感慨这是我写的代码吗,所有重构,优化,对于代码很重要,结合自己工作经验以及网上查找总结; 1、打包工具webpack,gulp方面: 项目工程化,模块化,组件化; 升级到新版本,编辑工具提升提供支撑;
阅读全文
摘要:函数实现累加计算,其实就是函数科里化的一个过程, add(1) => 1 add(1)(2) => 3 add(1)(2)(3) => 6 1、通过闭包原理以及toString方法 function add(...a) { let res = 0; a.forEach(item => (res +=
阅读全文
摘要:一、首先我们先看一下类(class)组件整个周期包含哪些: class MyComponent extends Component { // 挂载卸载阶段 constructor(props: any) { super(props); this.state = { name: 'Hello Worl
阅读全文
摘要:function person() { this.name = '劝退师'; } person.prototype.age = 20; const p = new person(); 运行发现如下 自定义一个函数,函数包含两个关键数据 prototype,__proto__ 1、原型 prototy
阅读全文
摘要:一、为什么要捕获异常 我们开发一个产品,不仅要做到开发没有问题,后期维护也要没啥问题; 我们没法去拿着用户的设备去判断到底什么问题,但是一定要加监控,可以在后台及时发现并处理异常; 我们在开发项目的时候要做到及时做一下完整性分析,包括日志平台,监控平台,前后端都增加一层捕获,有利于我们发现问题; 增
阅读全文
摘要:1px问题归根结底是设备不同导致的问题,导致我们在不同设备上渲染出的结果可能大于或小于1px; 首先我们了解几个基本的概念 像素:图像显示的基本单位,1像素是显示的最小区域; 物理像素:设备的我屋里像素,每个设备的物理像素都是厂商固定好的; css像素:主要是用于我们编码,约定好的显示在设备上的单位
阅读全文
摘要:三种设置的区别 1、Hash hash是跟整个项目的构建相关,只要项目里有文件更改,整个项目构建的hash值都会更改,并且全部文件都共用相同的hash值 2、chunkhash chunkhash,它根据不同的入口文件(Entry)进行依赖文件解析、构建对应的chunk,生成对应的哈希值。 简单来说
阅读全文
摘要:前言,面试中遇到将数字增加“,”,方便区分位数,这里记录一下,以便后续用到 1、正则表达式:正则替换 // 正则表达式 const toThousands = (num = 0) => { return num.toString().replace(/\d+/, function(n) { retu
阅读全文
摘要:一、传统盒模型布局 盒模型还包含以下几种布局 1、固定布局 2、流式布局 3、静态布局 二、flex弹性布局 详见之前文章 https://www.cnblogs.com/cxyqts/p/13048633.html 三、absolute定位布局 四、gird栅格布局 五、float浮动布局
阅读全文
摘要:前言:React 16.8 更新了一些新的生命周期,增加了hooks无状态组件,原有的class类组件的生命周期也进行了更新优化 我认为hooks才是React想做的事,React不想废弃原来的类组件,同时想扶正hooks,做了一些兼容,写法上的区别,但是最终结果是一样的, 下面我们来讨论一下新增加
阅读全文
摘要:生命周期 组件将要挂载时触发的函数:componentWillMount 组件挂载完成时触发的函数:componentDidMount 是否要更新数据时触发的函数:shouldComponentUpdate 将要更新数据时触发的函数:componentWillUpdate 数据更新完成时触发的函数:
阅读全文
摘要:一、常规函数 1、对象函数:谁调用的this指向谁 obj.getName() //指向obj var name = '劝退师'; var obj = { name: '程序员劝退师', getName: function() { console.log(this.name); }, }; obj.
阅读全文
摘要:一、作用域 首先我们应该了解什么是作用域(scope),作用域就是我们代码执行的环境,作用域决定了代码块中变量和其他资源的可见性, 在es6之前,js只有全局作用域和函数作用域,后来才有了块级作用域,我们主要讨论es6出现之前的作用域; 二、全局作用域和函数作用域 全局作用域:整个JS执行环境,上下
阅读全文
摘要:一、变量提升 变量声明提升: 如果变量声明在函数里面,则将变量声明提升到函数的开头; 如果变量声明是一个全局变量,则将变量声明提升到全局作用域的开头; 变量提升分为两步,第一步变量声明的提升,第二步变量的赋值; 案例1:全局变量提升 console.log(a); // 'undefined' va
阅读全文

浙公网安备 33010602011771号