这是去年 12 月面试的, 这次把面经补上
垂直水平居中
有哪些方式, 用代码实现flex
有哪些属性setInterval
的间隔时间是准确的吗? 如何做到间隔时间绝对准确浏览器缓存
https
TLS 协议四次握手Mobx
和Redux
原理, 二者在应用层面上的区别// 1. 三数之和(LeetCode 15)
// 2. 单链表反转
// 3. 手写一个 EventEmitter class
// 下面是 ChatGPT 写的:
class EventEmitter {
constructor() {
this.events = {};
}
/**
* 注册事件
* @param {String} eventName 事件名
* @param {Function} cb 回调函数
*/
on(eventName, cb) {
// 如果没有注册过,则创建一个空数组
if (!this.events[eventName]) {
this.events[eventName] = [];
}
// 将回调函数添加到对应的事件数组中
this.events[eventName].push(cb);
}
/**
* 触发事件
* @param {String} eventName 事件名
* @param {...any} args 传入参数
*/
emit(eventName, ...args) {
// 获取对应的事件数组
const callbacks = this.events[eventName];
// 如果存在
if (callbacks && callbacks.length) {
// 依次执行数组中的函数
callbacks.forEach(cb => {
cb(args);
});
}
}
}