HarmonyOS鸿蒙最全Node(15),面试必问的几个问题

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

1. 起源

Node.js 起源于 2009 年,由 Ryan Dahl 开发,起初的目的是为了解决一些网络应用运行缓慢的问题。
在 Node.js 之前,一般会采用 LAMP(Linux + Apache + MySQL + PHP)或者 MEAN等技术栈开发 web 应用。这些技术通常会采用请求-响应模型:

  1. 客户端(浏览器)发送一个请求
  2. 请求被送到服务端(Apache 服务器)
  3. 服务端处理请求,读取数据(连接 MySQL 数据库)
  4. 返回响应给客户端

在这个过程中,发送请求和读取数据库等操作都需要等待,这会使 web 应用的性能表现不佳。Ryan Dahl 发现,JavaScript 实际上是一个非常轻量级的语言,而且 V8 引擎拥有优异的性能,所以他构想了在服务端使用 JavaScript 的想法,于是便诞生了Node.js 。

2.什么是Node.js

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。它使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量和,是一个开源和跨平台的 JavaScript 运行时环境。 它是几乎任何类型项目的流行工具!

3.Node.js 的主要功能:
  1. 事件驱动
    Node.js 基于事件驱动模型,当某个事件触发时,相应的事件处理函数(事件回调)就会被执行。
    这意味着 Node.js 会一直监听各种事件,当监听到事件时立即异步响应,而不会造成阻塞。这使得 Node.js 可以处理高并发的场景。
  2. 异步非阻塞 I/O
    Node.js 中的 I/O 操作(读写文件、网络请求等)都是非阻塞的,这意味着这些 I/O 操作会立即返回,而不会等待结果。 当这些操作完成时,Node.js 会将完成结果作为事件通知注册的事件处理函数。
    这样我们的代码就不需要等待 I/O 操作结果,从而不会阻塞,可以处理并发请求。
  3. 单线程
    Node.js 是单线程的,它只有一个事件循环来处理所有事件。
    单线程避免了多线程之间的上下文切换开销,使性能更高。但也意味着如果某个操作过长时间阻塞线程,会影响其他任务的执行。
    所以在 Node.js 中,最好采用非阻塞的异步编程方式,避免长时间的计算任务阻塞线程,要充分利用 Node.js 的高性能,关键就是采用非阻塞的异步编程方式,避免长时间的计算任务阻塞线程。
  4. 高性能模块
    Node.js 的模块很大一部分都使用 C/C++ 编写,并通过 libuv 库并行执行。这使得 Node.js 拥有快速的模块加载速度和执行效率。
    常用的原生模块有:
  • fs:文件系统模块
  • http:HTTP 服务器和客户端模块
  • os:提供操作系统相关功能的模块
  • path:处理文件路径的模块
  • etc.
  1. V8 引擎
    Node.js 运行在 V8 引擎之上,V8 是 Google 开发的开源高性能 JavaScript 引擎。它带来以下优点:
  • 快速的执行速度,性能优异
  • 可以运行在资源受限设备上
  • 支持即时编译(JIT)

此外Node.js 还常用于:

  • web 服务器后端开发
  • API 服务开发
  • 实时服务开发(聊天室、实时评论等)
  • 命令行工具开发
    它天生适合构建轻量高效的服务端程序。许多知名企业也都广泛使用 Node.js,如 Netflix、Uber、PayPal 等。
    Node.js 拥有世界最大的包生态 - npm,有大量可复用的第三方包,可以极大降低开发难度。
    Node.js 支持的平台包括:
  • Windows
  • Linux
  • macOS
  • 等等
    所以我们可以利用 Node.js 编写跨平台应用。
4.应用前景

Node.js 作为一个流行的后端开发框架,有非常广阔的应用前景。我们可以从以下几个方面来深度剖析:

  1. Web 后端开发
    Node.js 非常适合开发 web 服务器后端和 API 接口,许多大公司的 web 服务都是采用 Node.js 栈开发的,如 PayPal、Netflix、Uber、eBay等。
    随着前端技术(Vue、React 等)不断发展,前后端分离架构逐渐流行,Node.js 作为优秀的后端编程语言,必将受益于此,拥有广阔的前景。
  2. 渐进式网络应用(PWA)
    PWA 是近年来流行的一种网络应用模式,Node.js 非常适合开发 PWA 应用。许多知名 PWA 应用也是基于 Node.js 栈开发的,如 VS Code、Skype 等。
    PWA 将是 web 应用的未来发展方向,这也为 Node.js 的应用前景带来一定的推动作用。
  3. 微服务
    微服务是一种流行的架构风格,Node.js 本身具有轻量高效的特点,非常适合构建微服务。许多公司都会采用 Node.js 对既有的架构进行微服务改造。
    微服务一定会是未来的主流架构模式,这也必将促进 Node.js 的更广泛应用。
  4. 物联网与 Monroe 设备
    Node.js 轻量级且跨平台的特性也使其非常适合在物联网和嵌入式设备上运行。许多公司会选择在这些设备上采用 JavaScript 或 Node.js 来实现业务逻辑。

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

18636735)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值