nodejs是哪个平台

nodejs是基于Chrome JavaScript运行时建立的一个平台,是让JavaScript可以运行在服务端的开发平台,主要用于方便地搭建响应速度快、易于扩展的网络应用。

nodejs是哪个平台

本教程操作环境:windows7系统、nodejs 12.19.0版,DELL G3电脑。

Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台,是 让JavaScript 运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言。

Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。

Node.js用于方便地搭建响应速度快、易于扩展的网络应用。

运行时是什么?

所谓运行时,就是程序在运行期间需要依赖的一系列组件或者工具;把这些工具和组件打包在一起提供给程序员,程序员就能运行自己编写的代码了。

对于 JavaScript 来说,它在运行期间需要依赖以下组件:

1) 解释器

JavaScript 是一种脚本语言,需要一边解释一边运行,用到哪些源代码就编译哪些源代码,整个过程由解释器完成。没有解释器的话,JavaScript 只是一堆纯文本文件,不能被计算机识别。

2) 标准库

我们在 JavaScript 代码中会调用一些内置函数,这些函数不是我们自己编写的,而是标准库自带的。

3) 本地模块

所谓本地模块,就是已经被提前编译好的模块,它们是二进制文件,和可执行文件在内部结构上没有什么区别,只是不能单独运行而已。这些本地模块其实就是动态链接库(在 Windows 下是 .dll 文件),如果你使用过C语言、C++ 等编译型语言,那你应该能够更好地理解它。

JavaScript 的很多功能都需要本地模块的支持,比如:

Cookie 用于存储少量的用户数据,它是用户计算机上的一种小文件,使用 Cookie 必须有文件操作模块的支持。

Ajax 可以借助互联网从服务器请求数据,这是一种网络操作,必须有网络库的支持。

一步一步跟踪代码的执行流程,从中发现逻辑错误,这个过程叫做调试,需要有调试器(Debugger)的支持。

JavaScript 可以操作 HTML,这需要 HTML 解析模块提前构建起 DOM 树。

本地模块一般封装了通用功能,对性能要求较高,所以通常使用编译型语言来实现,比如C语言、C++、汇编语言等。

JavaScript 解释器需要本地模块的支持,标准库在编写时也会调用本地模块的接口,而我们编写的 JavaScript 代码一般不会直接使用本地模块,所以 Web 前端程序员触及不到它们。

本地模块是幕后英雄,它不显山露水,但是又不可或缺。

总结

解释器、标准库、本地模块等各种组件/工具共同支撑了 JavaScript 代码的运行,它们统称为 JavaScript 运行时。

在 Node.js 之前,JavaScript 运行时被绑定在浏览器中,作为浏览器的各种模块出现。这意味着,要想运行 JavaScript 代码就必须启动浏览器,JavaScript 逃不出浏览器的手掌心,它的功能受到很大的限制,只能作为网页脚本使用。

Node.js 的组成

Node.js 运行时主要由 V8 引擎、标准库和本地模块组成,尤其是本地模块的多少,从底层决定了 Node.js 功能的强弱。

1) V8 引擎

V8 引擎就是 JavaScript 解释器,它负责解析和执行 JavaScript 代码。

V8 引擎借鉴了 Java 虚拟机和 C++ 编译器的众多技术,它将 JavaScript 代码直接编译成原生机器码,并且使用了缓存机制来提高性能,这使得 JavaScript 的运行速度可以媲美二进制程序。

2) 本地模块

Node.js 集成了众多高性能的开源库,它们使用 C/C++ 语言实现,比如:

               模块                说明

               libuv               一个跨平台的、基于事件驱动的异步 I/O 库。但是 libuv 不仅限于 I/O,它还提供了进程管理、线程池、信号处理、定时器等其它功能。

Linux 中一切皆文件,这里的 I/O 不仅仅包括文件读写,还包括数据库读写、网络通信(socket)等。               nmp               Node.js 包管理器,可以下载包、安装包、卸载包、更新包、上传包等。               http_parser               一款由C语言编写的轻量级 HTTP 解析器,用以支持 Web 应用开发。               zlib               工业级的数据压缩/解压模块,Nodejs 借助 zlib 来创建同步、异步或者流式的压缩/解压接口。               OpenSSL               该模块提供了经过严密测试的许多加密/解密功能,现代 Web 依赖这些功能来实现安全性,比如 SSL 协议和 https 协议。               c-ares               异步 DNS 查询和解析库。

Node.js 直接在计算机上运行 JavaScript 代码,并且要赋予 JavaScript 强大的能力,所以它的本地模块和浏览器中的运行时有很多大区别,甚至说几乎没有什么关联。Node.js 几乎完全抛弃了浏览器,自己从头构建了一套全新的 JavaScript 运行时。

3) 标准库

本地模块使用 C/C++ 编写,而 Node.js 面向 JavaScript 开发人员,所以必须要封装本地模块的 C/C++ 接口,提供一套优雅的 JavaScript 接口给开发人员,并且要保持接口在不同平台(操作系统)上的一致性。

这套 JavaScript 接口,就是 Node.js 标准库。标准库是否优雅和强大,决定了 Node.js 的易用性,直接影响 Node.js 的市场表现。

更多node相关知识,请访问:nodejs 教程!

以上就是nodejs是哪个平台的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2938245.html

(0)
上一篇 2025年3月11日 21:21:45
下一篇 2025年3月2日 04:20:35

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • nodejs可用什么编译器

    nodejs可用的编译器:1、Visual Studio Code,是一个免费的轻量级编辑器和IDE,可用于Nodejs和ASP.Net开发;2、Brackets,对Nodejs有很好的支持;3、Atom;4、Sublime Text等等。…

    2025年3月11日 编程技术
    200
  • Node.js经典技巧之Buffer(总结分享)

    本篇文章给大家带来了关于nodejs中buffer的相关知识,在node.js中,buffer类是随node内核一起发布的核心库,buffer库为node.js带来了一种存储原始数据的方法,希望对大家有帮助。 JavaScript 语言自身…

    2025年3月11日
    200
  • npm跟node.js有什么区别

    区别:1、“node.js”是JavaScript的一种运行环境,是服务器端的JavaScript解释器,而npm是“node.js”的包管理器;2、npm不需要单独的安装,“node.js”中包含npm,安装node时会将npm一起安装。…

    2025年3月11日
    200
  • node的架构分为哪几层

    node的架构分为三层:1、显示层,负责处理显示;2、业务逻辑层,负责将显示层的数据进行处理,或者获取服务器的数据进行处理后返回给显示层;3、数据访问层,负责从数据库中调用数据。 本文操作环境:Windows10系统、nodejs 12.1…

    2025年3月11日
    200
  • node数组去重的三种方法是什么

    方法:1、利用map数据结构实现去重,将数组的每一个元素作为key存到map中;2、利用es6中的set方法实现去重,语法为“Set(array)”;3、利用forEach语句配合indexOf实现去重。 本文操作环境:Windows10系…

    2025年3月11日
    200
  • node.js的get是什么意思

    在“node.js”中,get的意思是从指定的资源请求数据,是用于保证客户端机器与服务器之间通信的方法,常用于在客户端和服务器之间进行请求响应时来获取数据。 本文操作环境:Windows10系统、nodejs 12.19.0版、Dell G…

    2025年3月11日 编程技术
    200
  • node中全局函数有哪些

    全局函数:1、setTimeout()函数,用于在指定毫秒后执行指定函数;2、clearTimeout()函数,用于停止setTimeout()创建的定时器;3、setInterval(cb, ms)函数,用于设置定时器并且返回一个句柄值。…

    2025年3月11日
    200
  • nodejs回调地狱是什么

    在nodejs中,“I/O”的操作结果基本上都需要在回调函数中处理,当处理多个事件时回调函数就会一层层的嵌套,这就是回调地狱;也就是一个异步请求套着一个异步请求,一个异步请求依赖于另一个的执行结果,使用回调的方式相互嵌套的情况。 本文操作环…

    2025年3月11日
    200
  • node中token是什么意思

    在node中,token是“凭据、信物”的意思,是访问资源的凭据,是一种身份认证的方式;当用户登录成功后返回token,并且存于数据库,用户访问资源的时候需要携带token,token在客户端保存会话数据,在服务器中判断token的有效性。…

    2025年3月11日
    200
  • node环境和浏览器环境有什么区别

    区别:1、在node中this指向global,而在浏览器中this指向window;2、浏览器中的js大多数情况下是在直接或间接的操作DOM,而不会在node中操作DOM;3、node中提供了比较方便的组件用于读写文件,而浏览器中则没有。…

    2025年3月11日
    200

发表回复

登录后才能评论