首页 存档 技术 查看内容

几道有意思的Node.js 面试问题(附答案)

2018-3-30 13:00 |来自: 互联网 327 0

摘要: 近两年,JavaScript和Node.js生态系统有了很多更新和发展,因此,是该更新这些面试问题和答案的时候了。 仅仅通过面试问题去评价一个面试者,从来都不是一个好的选择。但是这些问题可以让你大体了解面试者在Node.js ...

近两年,JavaScript和Node.js生态系统有了很多更新和发展,因此,是该更新这些面试问题和答案的时候了。

仅仅通过面试问题去评价一个面试者,从来都不是一个好的选择。但是这些问题可以让你大体了解面试者在Node.js开发上的经验。

当然,这些问题并不能全面反映一个人的思维方式和开发习惯。

我相信,开发中遇到的问题,更能反映面试者的知识水平 -所以,我们鼓励面试者和候选者做结对编程(结对编程技术是指两位程序员坐在同一工作台前开发软件)。

最后也是最重要的:我们都是人,要尽最大的可能让面试者感到尊重和被欢迎。这些问题并不意味着题目和正确答案,只是让面试有话可聊。

2017 Node.js面试问题

  • 什么是error-first回调模式?

  • 如何避免“回调地狱”?

  • 什么是Promises?

  • 什么工具统一团队的代码风格?为什么统一的代码风格很重要?

  • 什么时候应当用npm?什么时候应当用yarn?

  • 什么是桩代码(stub)? 请描述一个应用场景!

  • 什么是测试金字塔?请举例说明!

  • 你最欣赏的HTTP框架是什么?为什么?

  • 如果保证你的cookie安全?如何阻止XSS攻击?

  • 如何确认项目的相关依赖安全?

答案

什么是error-first回调模式?

应用error-first回调模式是为了更好的进行错误和数据的传递。第一个参数保留给一个错误error对象,一旦出错,错误将通过第一个参数error返回。其余的参数将用作数据的传递。

fs.readFile(filePath,function(err,data){ if(err){ //handletheerror,thereturnisimportanthere //soexecutionstopshere returnconsole.log(err) } //usethedataobject console.log(data)})

如何避免“回调地狱”?

解决这个问题的方法有很多:

  • 模块化设计: 讲回调拆分成几个独立的函数

  • 使用流程控制库, 比如async

  • 组合使用generators和Promises

  • 使用async/await函数(只能在Node v7 release版本运行, Node LTS版本尚不支持

Q: 如何避免“回调地狱” A: 模块化设计, 流程控制库, 组合使用generators和 Promises, 使用async/await

什么是Promises?

promise的概念早在上个世纪八十年代就被提出,现在已经是大多数现代编程语言中支持的特性,让你能更轻松地实现异步模型。

举个简单的例子, 正常来说100ms 之后将会输出result。一旦失败,catch可以抛出异常。Promises允许链式操作。

newPromise((resolve,reject)=

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部