js基础知识总结

js 后端开发基础面试题

2018-10-13  本文已影响31人  空无一码

js 后端开发基础面试题

1 为什么要用node?

2 谈谈 node 的适合场景?

NodeJS处理并发的能力强,但处理计算和逻辑的能力反而很弱,适合运用在高并发、I/O密集、少量业务逻辑的场景。因此,如果我们把复杂的逻辑运算都搬到前端(客户端)完成,而NodeJS只需要提供异步I/O,这样就可以实现对高并发的高性能处理。比如:RESTFUL API、实时聊天、客户端逻辑强大的单页APP。

3 谈谈 node的构架?

由 v8 、libuv, 内置模块、本地模块和其他辅助服务组成:

4 node中的事件循环是什么样子的?

event loop其实就是一个事件队列,先加入先执行,执行完一次队列,再次循环遍历看有没有新事件加入队列.执行中的叫IO events, setImmediate是在当前队列立即执行,setTimout/setInterval是把执行定时到下一个队列,process.nextTick是在当前执行完,下次遍历前执行.所以总体顺序是: IO events >> setImmediate >> setTimeout/setInterval >> process.nextTick。

5 读写一个文件有多少种方法?

6 node是怎样支持https,tls的?

7 怎样实现一个简单的http服务器?

三部曲:加载http模块,创建服务器,监听端口

var http = require('http'); // 加载http模块
http.createServer(function(req, res) {
    res.writeHead(200, {'Content-Type': 'text/html'}); // 200代表状态成功, 文档类型是给浏览器识别用的
    res.write('
      <meta charset="UTF-8">
      <h1>欢迎使用nodejs</h1> 
    '); // 返回给客户端的html数据
    res.end(); // 结束输出流
}).listen(3000); // 绑定端口, 通过 http://localhost:3000 访问

8 怎样绑定node程序到80端口?

9 如何避免回调地狱?

10 最喜欢node哪个HTTP框架?为什么?

11 下列代码的输出结果?

var value1 = 0, value2 = 0, value3 = 0;
for ( var i = 1; i <= 3; i++) {
    var i2 = i;
    (function() {
        var i3 = i;
        setTimeout(function() {
            value1 += i;
            value2 += i2;
            value3 += i3;
        }, 1);
    })();
}
setTimeout(function() {
    console.log(value1, value2, value3);
}, 100);

12 9 6

结语

更多面试题请关注本公众号,node开发的面试远不止这些!

上一篇下一篇

猜你喜欢

热点阅读