2018.1.3 interview

一、

for ( var i = 0; i < 5; i++ ) {
(function(i) {
setTimeout(function() {
console.log(i, +new Date() /1000);
}, 1000)
})(i)
};

setTimeout(function() {
console.log(i, +new Date() /1000)
}, 1000)
考察作用域问题、异步函数执行顺序问题、依次执行异步函数、同步函数的方法。
顺序执行,我提出try finally,他否定了,我没敢坚持,一直在揣摩他的考察点,(try finally 也可以)。他提示用promise,我给出答案用promise.then + promise.resolve

二、

一个数组,找出里面二者之和等于target的两个元素的index。
我用的双for循环。

三、

一个数组,如果一个字节是0,两个字节是10或11,如果是结尾是一个字节返回true,两个字节返回false。比如[1, 0, 0] 返回true,[1, 1, 1, 0]返回false。审题错了(以为数组内元素会随意组合,他否定了),后来我觉得很简单,直接slice数组最后两个做判断就可以了。不知道对不对

四、git

git如果一个成员merge了你不想提交到线上的代码,怎么办?revert?我给出了revert的答案,但是感觉不需要啊,每个人各自维护自己的分支就行了。

五、

  1. 项目有哪些功能模块?(有点懵逼,说了用户、会员、登陆模块)
  2. http协议、长连接和短连接(跟网上看到的,随便说了说)
  3. 前后端分离遇到的问题(跨域的问题)
  4. react redux (用react + vuejs做了个比较,以及用redux的必要性,react的声明周期,常见考察点)
  5. express 如何并行查询 (用promise.when )
  6. css居中 (简单的很)
  7. webpack优化 (code spliting)
  8. 异步函数 (es7、promise)
  9. 设计模式、面向对象编程 (我提的,随便聊了项目中应用的设计模式)
原文地址:https://www.cnblogs.com/yaodi/p/8183796.html