NodeJs 面试一

来都来了 2020-10-19 13:48:45 ⋅ 691 阅读

来源:https://github.com/ElemeFE/node-interview/tree/master/sections/zh-cn

Js 基础问题

与前端 Js 不同, 后端是直面服务器的, 更加偏向内存方面.

常见问题

  • js 中什么类型是引用传递, 什么类型是值传递? 如何将值类型的变量以引用的方式传递? [more]
  • js 中, 0.1 + 0.2 === 0.3 是否为 true ? 在不知道浮点数位数时应该怎样判断两个浮点数之和与第三数是否相等?
  • const 定义的 Array 中间元素能否被修改? 如果可以, 那 const 修饰对象的意义是? [more]
  • JavaScript 中不同类型以及不同环境下变量的内存都是何时释放? [more]

阅读更多

模块

常见问题

  • a.js 和 b.js 两个文件互相 require 是否会死循环? 双方是否能导出变量? 如何从设计上避免这种问题? [more]
  • 如果 a.js require 了 b.js, 那么在 b 中定义全局变量 t = 111 能否在 a 中直接打印出来? [more]
  • 如何在不重启 node 进程的情况下热更新一个 js/json 文件? 这个问题本身是否有问题? [more]

阅读更多

事件/异步

常见问题

  • Promise 中 .then 的第二参数与 .catch 有什么区别? [more]
  • Eventemitter 的 emit 是同步还是异步? [more]
  • 如何判断接口是否异步? 是否只要有回调函数就是异步? [more]
  • nextTick, setTimeout 以及 setImmediate 三者有什么区别? [more]
  • 如何实现一个 sleep 函数? [more]
  • 如何实现一个异步的 reduce? (注:不是异步完了之后同步 reduce) [more]

阅读更多

进程

常见问题

  • 进程的当前工作目录是什么? 有什么作用? [more]
  • child_process.fork 与 POSIX 的 fork 有什么区别? [more]
  • 父进程或子进程的死亡是否会影响对方? 什么是孤儿进程? [more]
  • cluster 是如何保证负载均衡的? [more]
  • 什么是守护进程? 如何实现守护进程? [more]

阅读更多

IO

常见问题

  • Buffer 一般用于处理什么数据? 其长度能否动态变化? [more]
  • Stream 的 highWaterMark 与 drain 事件是什么? 二者之间的关系是? [more]
  • Stream 的 pipe 的作用是? 在 pipe 的过程中数据是引用传递还是拷贝传递? [more]
  • 什么是文件描述符? 输入流/输出流/错误流是什么? [more]
  • console.log 是同步还是异步? 如何实现一个 console.log? [more]
  • 如何同步的获取用户的输入? [more]
  • Readline 是如何实现的? (有思路即可) [more]

阅读更多

Network

常见问题

  • cookie 与 session 的区别? 服务端如何清除 cookie? [more]
  • HTTP 协议中的 POST 和 PUT 有什么区别? [more]
  • 什么是跨域请求? 如何允许跨域? [more]
  • TCP/UDP 的区别? TCP 粘包是怎么回事,如何处理? UDP 有粘包吗? [more]
  • TIME_WAIT 是什么情况? 出现过多的 TIME_WAIT 可能是什么原因? [more]
  • ECONNRESET 是什么错误? 如何复现这个错误?
  • socket hang up 是什么意思? 可能在什么情况下出现? [more]
  • hosts 文件是什么? 什么叫 DNS 本地解析?
  • 列举几个提高网络传输速度的办法?

阅读更多

OS

常见问题

  • 什么是 TTY? 如何判断是否处于 TTY 环境? [more]
  • 不同操作系统的换行符 (EOL) 有什么区别? [more]
  • 服务器负载是什么概念? 如何查看负载? [more]
  • ulimit 是用来干什么的? [more]

阅读更多

错误处理/调试

常见问题

  • 怎么处理未预料的出错? 用 try/catch ,domains 还是其它什么? [more]
  • 什么是 uncaughtException 事件? 一般在什么情况下使用该事件? [more]
  • domain 的原理是? 为什么要弃用 domain? [more]
  • 什么是防御性编程? 与其相对的 let it crash 又是什么?
  • 为什么要在 cb 的第一参数传 error? 为什么有的 cb 第一个参数不是 error, 例如 http.createServer?
  • 为什么有些异常没法根据报错信息定位到代码调用? 如何准确的定位一个异常? [more]
  • 内存泄漏通常由哪些原因导致? 如何分析以及定位内存泄漏? [more]

阅读更多

测试

常见问题

  • 为什么要写测试? 写测试是否会拖累开发进度?[more]
  • 单元测试的单元是指什么? 什么是覆盖率?[more]
  • 测试是如何保证业务逻辑中不会出现死循环的?[more]
  • mock 是什么? 一般在什么情况下 mock?[more]

阅读更多

util

常见问题

  • HTTP 如何通过 GET 方法 (URL) 传递 let arr = [1,2,3,4] 给服务器? [more]
  • Node.js 中继承 (util.inherits) 的实现? [more]
  • 如何递归获取某个文件夹下所有的文件名? [more]

阅读更多

存储

常见问题

  • 备份数据库与 M/S, M/M 等部署方式的区别? [more]
  • 索引有什么用,大致原理是什么? 设计索引有什么注意点? [more]
  • Monogdb 连接问题(超时/断开等)有可能是什么问题导致的? [more]
  • 什么情况下数据会出现脏数据? 如何避免? [more]
  • redis 与 memcached 的区别? [more]

阅读更多

安全

常见问题

  • 加密是如何保证用户密码的安全性? [more]
  • TLS 与 SSL 有什么区别? [more]
  • HTTPS 能否被劫持? [more]
  • XSS 攻击是什么? 有什么危害? [more]
  • 过滤 Html 标签能否防止 XSS? 请列举不能的情况? [more]
  • CSRF 是什么? 如何防范? [more]
  • 如何避免中间人攻击? [more]

 


全部评论: 0

    我有话说:

    Nodejs视频服务器 切片ffmpeg

    Node 视频服务器 切片ffmpeg

    Node模块之fs模块(六)

    屏幕快照 2017-08-08 上午10.53.21.png 第一部分 概述 Node.js 提供组类似UNIX(POSIX)标准的文件操作API,Node.js中操作文件的模块是fs(File

    Node实战篇:Express路由(三)

    Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,它提供系列强大的特性,帮助你创建各种 Web 和移动设备应用。

    Node模块之Events模块(五)

    Node模块之Events模块(五)

    Node实战篇:Express--jade模板引擎(七)

    Jade(Pug) — Node Template Engine,一个高性能的模板引擎,专为 Node 而做......

    2018年8个技巧来构建更好的Node.js应用程序

    2018年8个技巧来构建更好的Node.js应用程序

    Node初识与配置安装()

    第一. JavaScript简述 1992年, 第一个客户端脚本语言ScriptEase诞生, 由Nombas公司开发;JavaScript的首秀是在1995年,JScript 的诞生成为 JavaScript 发展的一个重要里程碑,标志了动态...

    Nodejs 接入 公众号【逗比版】

    Nodejs 接入 公众号 需求:Boss: 我们要接入公众号,你看下文档对接下。Me: 🆗 然后,可能因为对腾讯的反感,加之网上对腾讯的吐槽,怀着愤世嫉俗的态度胡乱的找资源,看方案

    Node 模块之 util URL queryString path(八)

    第一部分 util util是一个Node.js核心模块,util模块设计的主要目的是为了满足Node内部API的需求。其中包括:格式化字符串、对象的序列化、实现对象继承等常用方法。要使用util

    NodeJS 10.5.0 中的线程:实用介绍

    几天前,Node.js版本10.5.0发布,其中包含的主要功能之一是添加了线程支持。

    Node异步式I/O和异步式编程(三)

     Node.js 最大的特点就是异步式 I/O(或者非阻塞I/O)与事件紧密结合的编程模式。 第一部分: I/O 1.阻塞I/O与非阻塞I/O概念 1.1阻塞I/O(同步I/O) 线程在

    Node.js 实战篇--微信支付系列(二)

    接上篇首先我们看下整体上微信小程序的开发流程图

    Node.js 实战篇--微信支付系列(

    真正的无知不是知识的贫乏, 而是拒绝获取知识!——波普尔 (哲学家 思想家)鉴于微信支付文档内容详实

    Node实战篇:Express中间件与request(四)

    Express 是一个路由和中间件 Web 框架,其自身只具有最低程度的功能:Express 应用程序基本上是系列中间件函数调用。

    Node实战篇:Nodejs 链接 Mariadb 实例

    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL

    TypeScript Nodejs 项目结构

    新旧交替新事物代替旧事物无外乎旧事物太陈旧。JS动态软类型语言,便利的同时也带来了很多弊端,随着...

    TypeScript Nodejs 项目结构

    1. 新旧交替 新事物代替旧事物无外乎旧事物太陈旧。 JS动态软类型语言,便利的同时也带来了很多弊端,随着项目的增大,加上没有注释,你完全会懵逼。 可以看下网上汇总的错误信息,有多少个是类型错误引起的 图为rollbar统计的数千个项目中数...

    Node模块(四)

    模块化分工、各司其职

    Node包管理NPM(二)

    NPM是什么? [NPM官网](https://docs.npmjs.com/)给出解释如下: ``` Use npm to install, share, and distribute code; manage dependencies i...