前端面试每日3+2(第23天)

12/24/2019 每日3+2

当你发现自己的才华撑不起你的野心时,就请安静下来学习吧!

鲁迅说过:答案仅供参考...

# 1、React Native是什么?React Native比起标准的webApp或者原生开发带来了什么好处?

解析:

  • React Native是facebook于2015年4月开源的跨平台移动开发框架,是facebook早先开源的reac在原生移动平台的衍生物,支持IOS和安卓两大平台。
  • 使用Javascript和react编写的是原生应用,它的设计理念原理和react一样,通过声明式组件机制搭建页面。
  • RN应用是真正的原生应用,不是传统的html应用或者网页应用,也不是混合开发。最终生产的是一个真正的原生应用,从感官上和Object-c和Java编写的应用相比几乎无法区分。RN使用的基础UI组件和原生应用完全一致。
  • RN可以快速迭代开发应用,不需要漫长的编译过程,可以瞬间刷新你的应用。
  • 完美兼容Object-c、java和Swift编写的组件。同时使用RN组件和原生组件完全是支持的

# 2、什么是NodeJs?

解析:

  • 基于Chrome v8引擎运行在服务端端Javascript运行环境
  • Nodejs使用了事件驱动、异步非阻塞I/O的模型,其实轻量又便捷
  • Nodejs的包管理器npm,是世界上最大的开源库生态系统
  • 虽然node是用javascript的语法,但是并非是完全的javascript,我们知道javascript是包含了ECMAScript、DOM、BOM,而node则不包含DOM和BOM,但是它也提供了一系列模块供我们使用,如http、fs模块。

# 3、NodeJs的实用场景是什么?

解析:

  • 运行在服务器做web server:异步非阻塞I/O使得nodejs在处理大量并发I/O操作的业务时很合适,比如聊天工具等。
  • 运行在本地做构建工具,脚本工具

# 4、NodeJs的特点(优缺点)?

解析:

特点

  • 非阻塞异步I/O:如操作文件,通过非阻塞异步的方式读取文件
  • 事件轮询
  • 单线程
    • 不会死锁,不用考虑多线程处处在意同步问题,没有线程切换上性能的消耗 优点:擅长I/O密集型,主要体现在Node利用事件轮询的方式处理事件,而不是单开一个线程来为每一个请求服务
      缺点:不擅长cpu密集型,由于Node单线程,如果长时间运行计算将导致CPU不能释放,使得后续I/O无法发起。(解决办法是分解大型运算为多个小任务,不阻塞I/O发起)

# 5、什么是非阻塞I/O?

解析:

https://www.cnblogs.com/straybirds/p/9479158.html

Last Updated: 1/14/2020, 7:56:38 AM
    asphyxia
    逆时针向