240 发简信
IP属地:山东
  • 前端面经

    掌门二面(4.22) 1.react fiber原理2.常见的数据管理方式3.useContext和useReducer什么区别,如果选择4.扑克牌判断是否为顺子逻辑思维题 ...

  • 函数柯里化与反柯里化

    前言 在函数式编程中经常会遇到很多概念,比如纯函数、柯里化、高阶函数。 纯函数一个函数的返回结果只依赖于它的参数,并且在执行过程里面没有副作用 柯里化接受多个参数的函数转换成...

  • 前端路由实现

    前端路由一般分为两种方式 hash路由 H5 History路由 简单介绍下这两个路由: hash路由 标志:hash路由的标志是带有# 原理:通过监听url中的hash值变...

  • 水平垂直居中随笔

    水平居中的方式: 若子元素宽度固定,用magin-auto,缺点:只作用于块级元素,且需知道子元素宽度。 父元素设置text-align,子元素设置inline-block(...

  • 事件循环和回调队列的实战理解

    通过一道常见的题目,解释事件循环和回调队列机制 在Chrome 66和node v10中,此题的正确输出是: 知识点 宏任务一般包括包括:整体代码script,setTime...

  • 前端常用设计模式

    前端常见的设计模式主要有以下几种:1. 单例模式2. 工厂模式3. 策略模式4. 代理模式5. 观察者模式6. 模块模式7. 构造函数模式8. 混合模式 单例模式这种设计模式...

  • 手动promise封装ajax

    首先,定义传入 ajax函数的默认参数 使用方式如下:

  • 120
    浏览器缓存

    浏览器缓存分为两种,强缓存和协商缓存。浏览器缓存的流程大致如下: 强缓存 强缓存就是图中第一个判定条件。有两种方式判断浏览器的强缓存,Cache-Control和Expire...

  • webpack模块化原理

    我们通常将webpack称作模块打包机,今天我们就来看看webpack到底如何实现模块化的 一句话概括,webpack通过自执行函数启动,然后通过webpack自定义的exp...

  • 模拟call和apply函数实现

    call函数的使用方式如下: 首先我们要知道call函数都有哪些功能:1. 改变了this的指向,让它指向obj2. 函数foo执行3. 允许传入参数,且参数个数不确定4. ...

  • 经典Foo和Foo.getName

    输出解释如下: Foo.getName()Foo的静态方法优先级高于方法内部定义,调用Foo.getName(),输出2 getName()function getName(...

  • 120
    Object.create和new的区别

    js中创建对象的方式一般有两种Object.create和new 在讲述两者区别之前,我们需要知道: 构造函数Foo的原型属性Foo.prototype指向了原型对象。 原型...

  • 模拟bind函数实现

    一句话介绍 bind: bind() 方法会创建一个新函数。当这个新函数被调用时,bind() 的第一个参数将作为它运行时的 this,之后的一系列参数将会在传递的实参前传入...

  • JS性能优化之——节流和防抖

    闭包 由于节流和防抖函数的实现都用到了闭包,所以在了解节流和防抖之前我先简单介绍下什么是闭包。 由于js代码在一个执行环境中执行时,会创建变量对象的一个作用域链。作用域链用来...

  • 装饰器模式

    什么是装饰器模式 ES6/ES7中的装饰器模式简而言之就是对现有类进行一个包装,不通过子类或者改变其内部结构的方式为其扩展功能。 通俗的说,就是将现有的类变得更加“华丽”,比...