首页 > 其他分享 >【面经】百度前端一面面经

【面经】百度前端一面面经

时间:2023-06-28 21:44:45浏览次数:29  
标签:flex arr fastP 一面面 bus 面经 let event 百度

1. websocket 转 promise


send({type: 'getUserInfo'})


{type:'userInfo', payload: {}}

const res = await getMessage({type: 'getUserInfo'},{type:'userInfo'});
const ws = window.ws;
// ws.addEventListener('message', callback);

const time = 5000;
const getMessage = async function (msg,filter) {
	let timer = null;
  let timePromise = new Promise((resolve, reject) => {
  	timer =  setTimeout(() => {
    					resolve()
    				},time)
  })
  
  let getMessage2 = new Promise((resolve, reject) => {
 			ws.onmessage((res)=>{
        if(res.type === filter.type) {
      	  resolve(res)        
        }
      });
  	 	ws.send(msg)
 	}) 
	return  Promise.race([timePromise, getMessage2]).finally(()=>{
        timer = null
    })
   
}

 

2. 利用html css 样式,div垂直body居中,div中的text垂直居中,div的高度等于body高度的一半 100vh


<body style="display: flex; align-items: center; justify-content: center; height: 100vh">
  <div style="text-align: center;height: 50%;">
  	text
  </div>
</body>

flex: 1;

 

3. [1,3,4,5,6,8,9] => ['1','3-6','8-9']

let res = []
let fastP = 1, slowP = 0
while(fastP < arr.length) {
  if(arr[fastP] - 1 > arr[fastP - 1]) {
    let tmpStr = ''
    if(slowP === fastP - 1) {
    	tmpStr = tmpStr + arr[slowP]
    } else { 
    	 tmpStr = arr[slowP] + '-' + arr[fastP - 1]
    }
    res.push(tmpStr)
    slowP = fastP
  }
  fastP ++
}

 

4. 发布订阅
let subject = new Subject();
let dispose = subject.listen('message', (payload)=>{
	console.log(payload)
});
// dispose(); 销毁事件
subject.emit('message', {
	name: 'zs'
});

// 实现Subject
class Subject{
  bus = {}
  emit(event, payload) {
   	this.bus[event].forEach((callback)=>{callback(payload)})
  	 
  }
  
  listen(event, callback){
    if(!this.bus[event]){
      this.bus[event] =[];
    }
     this.bus[event].push(callback);
		// callback(this.payloads[event])
    // todo return dispose
    return ()=>{
     this.bus[event] =  this.bus[event].filter(item=>item===callback)
    }
  }

}

 

把对象转换成数组

const obj = { a: 1, b: 2, c: 3 };
const arr = Object.entries(obj);
console.log(arr); // [["a", 1], ["b", 2], ["c", 3]]

 

flex: 1 的含义

需要注意的是,flex: 1 只是 flex-grow 的简写形式
它将 flex-grow、flex-shrink 和 flex-basis 设置为默认值,即 flex: 1 1 0。
如果希望指定不同的 flex-grow、flex-shrink 和 flex-basis 值,可以使用完整的 flex 属性写法。

 

标签:flex,arr,fastP,一面面,bus,面经,let,event,百度
From: https://www.cnblogs.com/zjy4fun/p/17512644.html

相关文章

  • 【后端面经-Java】Synchronize和ReentrantLock区别
    目录1.概念介绍1.1线程安全锁1.2公平锁1.3响应中断/等待可中断2.区别2.1底层实现2.2锁的用法2.3锁的特点2.4性能比较2.5适用场景3.总结比较参考文献1.概念介绍1.1线程安全锁Synchronize(同步锁)和ReentrantLock(可重入锁)都是Java中的常用锁,都是用来保证线程安全的。......
  • 程序员如何去投资银行做IT(附高盛面经)
    程序员如何去投资银行做IT(附高盛面经)转载请注明from Career_Investment@smth自我介绍: 爱生活爱自由爱扯淡爱数学爱写码算法盲本文目的:为向我这样的p民提供职业道路的另一种选择.ps文章较长,没耐心的出门worklife本文内容: 1.为什么要放弃......
  • 一个基于百度翻译爬取的桌面极简翻译框
    简译:SimpleTranslate目录简译:SimpleTranslate简介配置过程数据来源安装execjs库特征开发历史记录快捷键操作唤醒、隐藏查词清除播放声音打包运行示例简介开源地址:https://github.com/hhr346/SimpleTranslate一款快速查词的桌面小工具Adesktopgadgetforquickwordsear......
  • windows的百度网盘不限速下载方法
    1.首先安装油猴插件2.搜索kubedown关键词搜索脚本。也可直接进入本文附带的网站     百度网盘不限速下载-KubeDown(greasyfork.org)3.下载idm/ndm:http://ndm.kubedown.com/(ndm下载链接)4以ndm为例的使用方法(更改ndm的下载位置与用户代理:netdisk)5.网盘选择要下载......
  • 【后端面经-Java】HashMap详解
    (【后端面经-Java】HashMap详解)1.HashMap的家族定位接口java.util.Map有四个常用的实现类,如图是它们之间的类继承关系。下面我将一一介绍其性能特点。HashMap:最常用的Map实现类,通过使用Hash表结构,提高查找速度;使用键值对作为存储节点,只允许一个key值为null,允许多个value......
  • 【后端面经-Java】HashMap详解
    目录1.HashMap的家族定位2.HashMap的数据结构2.1Hash表的基本概念2.2Hash冲突2.3HashMap数据结构3.HashMap的重要变量3.1常量3.2变量3.3辨析size、capacity、threshold4.HashMap重要方法和源码解析4.1构造方法4.2resize方法4.3hash方法4.4put方法参考文献1.HashMa......
  • 迟来的秋招面经,17家公司,Java岗位
    一位朋友秋招面试了17家公司(都是中小公司或者银行),Java后端岗。下面是他的个人情况、求职经验已经这17家公司的面经。个人情况和求职经验其实现在是挺后悔大学没有好好的学习的,因为基本上都会提到一些成绩相关的事情,每次填成绩都只能填个50%(实际上更低),并且还有挂科,没有奖学金,没......
  • VMware虚拟机ubuntu备份文件到百度网盘+定时任务自动备份
    在虚拟机里弄东西,免不了有些文件需要保存,手动保存太麻烦,用工具设置成自动备份,还不怕遗忘。一、文件同步方式一:1.在你的物理机上找一个目录假设:D:\Win-share2.在VM虚拟机里/mnt/hgfs/路径下就可以看到分享的物理机目录了。3.设置百度网盘同步选择文件夹是选择物理机......
  • 百度网盘下载慢怎么解决2022(4种免费提速方法)
    摘自:http://baike.jld5.cn/news/49696.html工信部终于针对网盘免费用户下载速度慢的问题出手了,要求各网盘企业在同样的网络条件下,对免费用户提供的上传和下载的最低速率应确保满足基本的下载需求,并且要求此项任务于2021年12月底前完成。看到这则消息时,给小编的第一感觉是网盘免......
  • 百度Amis+React低代码实践
    背景在项目中有集成低代码平台的想法,经过多方对比最后选择了amis,主要是需要通过amis进行页面配置,导出json供移动端和PC端进行渲染,所以接下来讲一下近两周研究amis的新的以及一些简单经验,供大家参考.什么是amisamis是一个低代码前端框架,它使用JSON配置来生成......