nodejs面试总结

本篇记录一下,最近面试的几家公司的一下面试题(一些本人的项目中的内容可能就不介绍了)。mysql

1、一个http请求,从客户端到服务端须要通过哪些步骤?

简单描述为:git

1.域名解析(DNS服务器)es6

2.Tcp链接github

3.发送http请求(请求行,请求头,请求信息)面试

4.服务器响应请求redis

5.Tcp断开链接 具体看: 传送门sql

2、谈谈你对js堆和栈的理解?(原始问法是透过 引用类型和值类型的题引伸过来的)

3、

① 如何在原型添加属性或方法。express

function person(){} 
person.prototype.say = function(){}
复制代码

② 经过形参的方式给person添加属性name,并建立一个叫 zhangsan的对象继承person的属性api

function Person(name){
       this.name = name;
}
Person.prototype.say(){
console.log(this.name);
}

const zhangsan = new Person(‘zhangsan’);
复制代码

③ 在建立lisi的对象。promise

const lisi = new Person(‘lisi’);
复制代码

④ 如何让李四继承张三的say函数。(如何改变this的指向,让zhangsan的this指向lisi) 说明:调用 lisi.say(); 打印 zhangsan。

用es5新加入的 bind() 来解决。 详细看:
复制代码

传送门

4、若是有一个逻辑运算很复杂的程序块中(好比亿),运行时会发生什么?遇到这种状况一般会如何解决?process.nextTick()了解吗?谈谈你的理解?

5、

① 声明一个promise,五秒后输出helloworld

② promise里面运行的内容是在 调用.then() 以前执行的仍是 调用.then才执行?

6、

const p1 = function(){
return new promise(resolve=>{});
};
const p2 = function(){
return new promise(resolve=>{});
};

async function f1(){
   // 若是要用 p1和p2 的值来做为参数如何接收?如何不用等待 其中p1(或p2)执行完毕以后再去执行p2(或p1)。
}
复制代码

7、谈谈你对面向对象是如何理解的?

8、大家项目中的api一般是如何定的?简单描述一下rest api。

9、Node 所熟悉的框架,谈谈 express是如何从一个中间件执行到下一个中间件的(express的路由机制)?

10、Express和koa 或者egg的区别?

11、举出几个 你作过的分库分表的实例。

12、你一般是如何优化mysql的查询?

十3、大家项目中用到了redis的那些方法,set 和 mset的区别?

十4、Mysql的索引是如何实现的。

十5、举例写出一个Mysql储存过程和一个事务。

十6、Es5中的普通函数和es6中的箭头函数有什么区别?还有this的指向。

十7、你在开发过程当中,遇到了哪些难以解决的问题,是如何解决的?(几乎每一家公司都问)

十8、你经常使用的系统有哪些?简述Docker 是如何部署的?

event loop、libuv、事件循环 了解吗?谈谈你的理解。

最后上一张,面试的笔试题

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息