首页 > 其他分享 >面试题准备

面试题准备

时间:2022-12-15 23:45:30浏览次数:37  
标签:订阅 面试题 obj 消息 准备 msg 接收 id

1.new一个对象发生了什么?

function _new() {
  let obj = {};
  let Con = [].shift.call(arguments);
  obj.__proto__ = Con.prototype;
  let result = Con.apply(obj, arguments);
  return typeof obj === "object" ? obj : {};
}

  1.创建一个对象

  2.链接到原型

  3.绑定this对象

  4.返回对象

 

2.发布订阅

什么是发布订阅:无论何时当我们在a处发送了消息,订阅过a处消息的地方都可以接收到发送的消息

const obj = {}  // 用于存储所有订阅的回调。把订阅id作为对象的属性

function on(id,f){   // 订阅消息的函数。这里的id与发布消息处的id对应,f使用来接收消息的回调
   if(!obj[id]) obj[id] = []
   obj[id].push(f)    
}

function emit(id,msg){  // 发布消息的函数。这里的id与订阅消息的id对应
    obj[id].forEach(f=>f(msg))
}

on('hhh',(msg) => {console.log('a处接收消息',msg)})
on('hhh',(msg) => {console.log('b处接收消息',msg)})

emit('hhh','哈哈哈')

 3.热更新原理

Webpack HMR 特性的原理并不复杂,核心流程:

使用 webpack-dev-server (后面简称 WDS)托管静态资源,同时以 Runtime 方式注入 HMR 客户端代码;
浏览器加载页面后,与 WDS 建立 WebSocket 连接;
Webpack 监听到文件变化后,增量构建发生变更的模块,并通过 WebSocket 发送 hash 事件;
浏览器接收到 hash 事件后,请求 manifest 资源文件,确认增量变更范围;
浏览器加载发生变更的增量模块;
Webpack 运行时触发变更模块的 module.hot.accept 回调,执行代码变更逻辑;
done;

标签:订阅,面试题,obj,消息,准备,msg,接收,id
From: https://www.cnblogs.com/baller-coder/p/16731167.html

相关文章

  • 途虎养车面试准备
    1.url的组成和长度协议、域名、端口号、资源路径、查询参数   2.浏览器地址栏输入url,到页面渲染经历哪些过程域名解析为ip地址主机向IP地址发送tcp请求,连接上......
  • 常见react面试题
    React组件命名推荐的方式是哪个?通过引用而不是使用来命名组件displayName。使用displayName命名组件:exportdefaultReact.createClass({displayName:'TodoApp',/......
  • 开通博客园,虽迟但到。。。为晋升准备一下
    开个博客,记录下吧。。能肝多少算多少。。老牌不会倒就好。啊。。上次晋升是21年初了。。一晃两年过去了。。感觉自己也没太大的进步。好慌。年中老大就提醒我,年底去晋......
  • 面试题:对NotNull字段插入Null值 有啥现象?
    Hi,大家好!我是白日梦。今天我要跟你分享的话题是:“对NotNull字段插入Null值有啥现象?”使用推荐阅读,有更好的阅读体验,公众号首发!分享不易,欢迎关注~二、从一个实验开始首先创建......
  • mitmproxy 抓包神器-1.环境准备与抓取浏览器请求
    前言常见的抓包工具有fiddler和charles,这些工具都是需要安装本地客户端,python版的抓包工具可以用mitmproxy。mitmproxy相比Charles、fiddler的优点在于,它可以命令......
  • 腾讯前端常考vue面试题(必备)
    虚拟DOM的优劣如何?优点:保证性能下限:虚拟DOM可以经过diff找出最小差异,然后批量进行patch,这种操作虽然比不上手动优化,但是比起粗暴的DOM操作性能要好很多,因此虚拟......
  • 前端vue面试题汇总
    常见的事件修饰符及其作用.stop:等同于JavaScript中的event.stopPropagation(),防止事件冒泡;.prevent:等同于JavaScript中的event.preventDefault(),防止执行预设......
  • 一道React面试题把我整懵了
    提问:react项目中的JSX里,onChange={this.func.bind(this)}的写法,为什么要比非bind的func=()=>{}的写法效率高?声明:由于本人水平有限,有考虑不周之处,或者出现错误的,请......
  • C#面试题
    原文链接:https://www.cnblogs.com/xjzh/p/11021893.html1.维护数据库的完整性、一致性、你喜欢用触发器还是自写业务逻辑?为什么?答:尽可能用约束(包括CHECK、主键、唯一键......
  • python之路49 模板层标签 自定义过滤器 模板继承、模型层准备、ORM部分操作
    模板层之标签{%if条件1(可以自己写也可以是用传递过来的数据)%}<p>周三了周三了</p>{%elif条件2(可以自己写也可以用传递过来的数据)%}<p>百日......