blog icon indicating copy to clipboard operation
blog copied to clipboard

Lawler's Blog 不定期分享一些前端技术

Results 8 blog issues
Sort by recently updated
recently updated
newest added

### 顺序发送 4 个请求 a,b,c,d,要求按照顺序输出 利用数组缓存,再按照标志依次输出 ```js function getData(urls) { // 感谢 @jinxin0112 的指正 return new Promise((resolve, reject) => { const res = [], len = urls.length; urls.forEach((url, i) =>...

面经

### 用 promise 实现一个请求超时功能 **关键词:promise.then 与 setTimeout 并行** 抓住 promise 的状态只能由 pending -> fulfilled,或者 pending -> rejected,并且只能进行一次改变 ```js function promiseWithTimeout(url, timeout = 3000) { return new Promise((resolve, reject) => {...

面经

### 格式化数字 **要求:使用正则和非正则两种方式实现** 评论区大神们,欢迎附上正则版~ ```js // 法1:toLocaleString // 浏览器提供该 api 对数字进行格式化,不过对于小数的处理使用的是四舍五入 let num = 1234567; console.log(num.toLocaleString('en-US')); // 1,234,567 num = 12345.6785; console.log(num.toLocaleString('en-US')); // 12,345.679 // 法2:数组操作 function format(num) { if...

面经

### 实现简易版 MVVM **关键词:Object.defineProperty** ```js class Observer { constructor(data) { this.data = data; } observe(prop, cbObj) { // 调用了 observe 才会对属性 prop 进行观察 if (!prop || typeof prop !== 'string')...

面经

[原文地址](https://github.com/lawler61/blog/blob/master/js/mobx-source/index.md) 欢迎讨论~

mobx 源码解读

### 手撸一个事件机制 **关键词:发布-订阅模式** 其实核心就是维护一个对象,对象的 key 存的是事件 type,对应的 value 为触发相应 type 的回调函数,即 listeners,然后 trigger 时遍历通知,即 forEach 进行回调执行。 ```js class EventTarget { constructor() { this.listeners = {}; // 储存事件的对象 } on(type, callback)...

面经

### 格式化发布时间 **找准每段时间的变换点即可** ```js function format(date, testMode) { const MIN = 60 * 1000; const HOUR = 60 * MIN; const DAY = HOUR * 24; const WEEK = DAY...

面经

### 深度克隆 js 各种数据类型。附加题:实现对象中嵌套数组,数组中嵌套对象 JS 中基本类型 > 5 种原始类型:Boolean, Number, String, Null, Undefined(暂不考虑 ES6 的 Symbol)还有 Object ```js // 这里把数组也考虑了进来 function deepClone(someObj) { const { toString } = Object.prototype; const...

面经