自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 聊聊Vue中的nextTick

你盼世界,我盼你无bug~爱你呦今天来看看Vue中nextTick,他到底是啥玩意?他实现的原理又是什么?什么时候会用到他?三联问,那我们来剖析一下这个不可或缺的玩意~实际上这个nextTick主要是针对Vue的异步更新队列的理解,我们先整理一下思路:了解nextTick是什么,定义;为什么需要他呢?异步更新队列实现原理;什么地方可以用到?使用场景;如何使用?使用方法;了解源码是如何实现的?扩展更深层次源码实现相信如果上面这些问题都非常透彻,那面试一定没问题,加油~我们先来看看官方定义

2021-04-08 15:11:29 1012

原创 JavaScript基础面试题

1、解释一下变量提升?javascript引擎的工作方式是,先解析代码,获取所有被声明的变量,然后在一行一行的运行。这造成的结果,所有的变量的声明语句,都会被提升到代码的头部,这就叫做变量提升(hoisting)。console.log(a)//undefinedvar a = 1function b(){ console.log(a)}b()//1上面的代码实际执行顺序是这样的:第一步:引擎将var a = 1拆解为var a = undefined和a = 1,并将var = und

2021-04-05 15:00:30 332

原创 React面试题总结

1、React最新的生命周期是怎样的?react16之后又三个生命周期被废除(但并未删除)componentWillMountcomponentWillReceivePropscomponentWillUpdate官方计划在17版本完全删除这三个函数,只保留UNSAVE_前缀的三个函数,目的是为了向下兼容,但是对于开发者而言应该尽量避免使用它们,而是使用新增的生命周期函数替代他们目前React 16.8+的生命周期分为三个阶段,分别是挂在阶段、更新阶段、写在阶段挂载阶段:constru

2021-03-02 17:02:21 2437 1

原创 CSS面试总结

1、CSS选择器优先级是怎样的?css选择器优先级是:内联 > ID选择器 > 类选择器 > 标签选择器到具体的计算层面,优先级是由A、B、C、D的值来决定,其中他们的值计算规则如下:A的值等于1的前提下是存在内联样式,否则A = 0;B的值等于 ID选择器 出现的次数C的值等于 类选择器 和 属性选择器 和 伪类出现的总数;D的值等于 标签选择器 和 为伪元素 出现的总次数。就比如下面的选择器,它不存在内联样式,所以A=0,不存在id选择器B=0,存在一个类选择器C=1

2021-03-01 11:09:42 188

原创 前端html大厂面试题

1、doctype的作⽤是什么?DOCTYPE是html5标准⽹⻚声明,且必须声明在HTML⽂档的第⼀⾏。来告知浏览器的解析器⽤什么⽂档标准解析这个⽂档,不同的渲染模式会影响到浏览器对于 CSS 代码甚⾄ JavaScript 脚本的解析⽂档解析类型有:BackCompat:怪异模式,浏览器使⽤⾃⼰的怪异模式解析渲染⻚⾯。(如果没有声明DOCTYPE,默认就是这个 模式)CSS1Compat:标准模式,浏览器使⽤W3C的标准解析渲染⻚⾯。IE8还有⼀种介乎于上述两者之间的近乎标准的模

2021-02-28 19:07:58 251 2

原创 javascript 2020新增语法

javascript2020 新特性1、通过#给class添加私有变量,类的私有变量// 现在,此特性可在最新版本的Chrome和Node.js中使用class Couter{ // ES2020中通过#给class添加私有变量 #number = 10 increment(){ this.#number++ } getNum(){ return this.#number }}const couter = new Couter()c

2021-01-17 15:36:22 1090 1

原创 webpack打包工具的原理

实现一个几十行的迷你打包工具,该工具可以实现以下两个 功能1、将 ES6 转换为 ES52、支持在 JS 文件中 import CSS 文件因为涉及ES5转ES6,所以我们首先需要先安装Babel相关得工具npm add babylon babel-traverse babel-core babel-preset-env接下来将这些工具进入文件中const fs = require('fs')const path = require('path')const babylon = requi

2020-10-14 16:31:38 182

原创 实现promise、call、apply、bind

实现promise、call、apply、bind下面直接上代码,实现分析实现promise、call、apply、bind原理实现,如有问题欢迎指点。// prmoise实现const PENDING = 'pending'const RESOLVED = 'resolved'const REJECTED = 'rejected'function MyPromise(fn) { const that = this that.state = PENDING that.v

2020-10-12 10:41:59 513 1

原创 js中函数柯里化

今天,我们记录一下js中的函数柯里化,对于小白,接触到柯里化这三个字,内心很崩溃,其实只是一个比较高深的名字,函数柯里化说人话就是:使用一个闭包返回一个函数(这里默认大家知道什么叫做闭包),函数需要设置一些传入的参数。下面是一段函数柯里化的代码:function curry(fn){ var args = Array.prototype.slice.call(arguments, 1); return function(){ var innerArgs =

2020-08-21 16:56:29 141

原创 页面函数防抖和节流的区别

防抖和节流直接上代码,注释防抖和节流之间的区别和差异<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=e

2020-08-11 11:08:05 886 2

原创 检测脚本,检测脚本,包括检测呈现引擎、平台、Windows操作系统、移动设备 和游戏系统

用户代理字符串检测脚本直接上代码:// 用户代理字符串检测脚本,包括检测呈现引擎、平台、Windows操作系统、移动设备 和游戏系统 var client = function(){ // 呈现引擎 var engine = { ie:0, gecko:0, webkit:0, khtml:0, opera:0 // 完

2020-07-08 17:11:36 531

原创 input或者select搜索功能处理输入值为中文时

想必大家都有遇到。在input框中输入值的时候,英文很nice,但是一遇到中文,内心就很崩溃,经历过的都知道。在这里总结一下经验。有两个方法,说实话我也是第一次见,compositionstart,通俗说这个方法是监听中文输入法开始之后,compositionend 这个方法时间监听输入法结束时候,列举一个select搜索例子供大家参考,话不多说直接贴代码!<select name="mo...

2019-12-25 11:50:09 953

空空如也

空空如也

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

TA关注的人

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