图森未来前端一面
自我介绍
tcp三次握手
http长连接和短链接的区别
怎么判断长连接 connec:tionkeep-alive字段
osi七层模型,以及会话层的作用(不会)
实习的项目:
主要讲了断点续传
worker的postMessage会拷贝文件(不清楚,面试官说的)
promise看输出(让我讲了一下原因)
new Promise((resolve, reject)=>{ console.log("1") resolve() }).then(()=>{ console.log("2") new Promise((resolve, reject)=>{ console.log("10") resolve() }).then(()=>{ console.log("20") }).then(()=>{ console.log("30") }) }).then(()=>{ console.log("3") }).then(()=>{ console.log('4') })
实现一个retry函数
假设有一个异步获取数据的请求每次都在1000ms后失败, 报错“server unavailable”。 function fetchData() { return new Promise(function (resolve, reject) { setTimeout(function () { console.log('promise') // resolve('success') reject('server unavailable') }, 1000) }) } //假设我们最多重试3次就不再尝试发送该请求,每次重试间隔100ms。 // parameter #1, the function to return a Promise // parameter #2, the max retry times // parameter #3, the delay between each attempt retry(fetchData, 3, 3000) function retry(fn, count, delay) { let reCount = 0; let retryFn = function () { return new Promise((resolve, reject) => { fn().then(res => { resolve(res) }).catch(e => { reCount++; if (reCount < count) { setTimeout(retryFn, delay) } }) }) } return retryFn(); }
生成括号(回溯)
coding: 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 输入:n = 3 输出:["((()))","(()())","(())()","()(())","()()()"] function createF(n) { let res = [] let r = n; let l = n; function back(str,l, r) { if(str.lenght === 2*n) res.push(str) if(l>0) { back(str+'(', l-1, r) } if(r > l) { back(str+')', l, r-1) } } back('', l , r) return res; } let t = createF(3) console.log(t)#图森未来##面试题目#