小蘑菇糖糖
小蘑菇糖糖
# 实现一个repeat函数 ## 题目 实现一个repeat函数,每次间隔时间调用被包裹的函数,重复指定的次数 ```js function repeat (func, times, wait) { // ... } // 调用 const repeatFunc = repeat(console.log, 4, 500) repeatFunc('hello~') // 输出 // hello~ // *...
## 题目 请实现以下的函数,可以批量请求数据,所有的URL地址在urls参数中,同时可以通过 max 参数控制请求的并发度,当所有请求结束之后,需要执行 callback 回调函数。发请求的函数可以直接使用 fetch 即可 ```js function sendRequest(urls: sring[],max:number,callback:()=>void){ //TODO } ``` ## 实现 > 这里收藏网上一个比较好的实现。 ```js function sendRequest(urls, max, callback) { const len = urls.length;...
实现字符串反转
# 实现字符串反转 ## 题目 实现一个字符串反转:输入:www.toutiao.com.cn 输出:cn.com.toutiao.www 要求:1.不使用字符串处理函数 2.空间复杂度尽可能小 ## 实现 要实现字符串反转,应用双指针前后交换位置即可,这里需要注意字符串是基本类型,需要先转换成字符数组,反转后再拼接回去即可。 ```js // 方法一, 不合题意,却可以大致整理出思路 function _swap(s) { return s.split('.').reverse().join('.') } // swap('www.toutiao.com.cn') // "cn.com.toutiao.www" // 分别实现上述函数 function split(s, op='')...
# 实现Lodash函数系列(一):_.get ## 题目 ```js /** * object (Object): 要检索的对象。 * path (string): 要获取属性的路径。 * [defaultValue] (*): 如果解析值是 undefined ,这值会被返回。 */ function _get(object, path, default) { } ``` 实现类似 `lodash`...
# 关于async和await的“同步” ## 题目 要求看代码写输出。 ```js function wait(){ return new Promise(resolve => setTimeout(resolve, 10*1000) ) } async function func1() { console.time('time-func1') const x = await wait() const y = await...
# JS实现函数无限操作 ## 题目 用Javascript实现一个无限极函数,形如: ```text operator (1)(2)(3) => f(x)...; operator (1)(2)(3)() => 6; ``` 注意:执行operator的时候如果最后不是以()结尾(如operator (1)(2)),则这个结果会一直缓存到闭包里。如果下次直接operator (3)(4)的话结果是10.因为他会累加之前的结果。如果你不想这样,那可以通过加()消费缓存的结果。 ## 实现 闭包的一个应用。 ```js function add(x, y) { if (isNaN(+x)) { x...
# 字节跳动前端面经 其他与个人项目相关的就不说了,直接来看笔试题。 ## 题目 ### 看代码写输出 ```js var result = []; var a = 3; var total = 0; function foo(a) { var i = 0; // 注意这里的i后置加 for...
# flex属性的计算方法 这里主要是flex-grow、flex-shrink,分别对应在空间有剩余时的分配、空间不足时的收缩 ## flex-grow 剩余空间按flex-grow指定的值比例分配即可 举个例子,父容器的宽度为600,两个子项A(300, 1)、B(200, 2),求具体宽度: ```text 剩余宽度为100 子项增长宽度A = 100 * 1/3 = 33.333, 则实际宽度 = 333.333 子项增长宽度B = 100 * 2/3 = 66.667, 则实际宽度 =...
# 微信面试题 LazyMan 要求实现一个函数,需要满足以下功能 ```js LazyMan('Tony'); // Hi I am Tony LazyMan('Tony').sleep(10).eat('lunch'); // Hi I am Tony // 等待了10秒... // I am eating lunch LazyMan('Tony').eat('lunch').sleep(10).eat('dinner'); // Hi I am Tony...
# 判断二叉树是否相同/对称 ## 题目 给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 [100. 相同的树](https://leetcode-cn.com/problems/same-tree/) ## 思路 处理二叉树的问题,递归比较直观,逐级判断节点是否一致即可。 ## 实现 ```js const isSameTree = (p, q) => { if(p == null && q == null) return true;...