Node.js详解(二):Node.js与JS的关系

这篇具有很好参考价值的文章主要介绍了Node.js详解(二):Node.js与JS的关系。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、简介

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

JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言。它是一种高级的、解释型的编程语言;它是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。

传统的js是运行在浏览器上的,因为浏览器内核分为两个部分:

  • 渲染引擎—渲染HTML和CSS
  • JavaScript 引擎—负责运行 JavaScript

如果要执行JavaScript代码,需要一个js引擎,你可以安装一个浏览器(内置js引擎),或nodejs环境(内置js引擎),如果你在js代码中调用了浏览器提供的API,则必须安装一个浏览器,若调用了nodejs API,则必须安装nodejs环境,然后以各自规定的方式加载、执行JavaScript代码。
Node.js详解(二):Node.js与JS的关系

二、Node.js的历史

2008年左右,随着 AJAX 的逐渐普及,Web 开发逐渐走向复杂化,系统化;

2009年2月,Ryan Dahl 想要创建一个轻量级,适应现代 Web 开发的平台;

2009年5月,Ryan Dahl 在 GitHub 中开源了最初版本,同年11月,JSConf 就安排了 Node 讲座;

2010年底,Joyent 公司资助,Ryan Dahl 也加入了该公司,专门负责 Node 的开发;

2011年7月,在微软的支持下登陆 Windows 平台。PS:node 的生产环境基本是在 Linux 下。

据 Node.js 创始人 Ryan Dahl 回忆,他最初希望采用 Ruby,但是 Ruby 的虚拟机效率不行。

注意:是 Node 选择了 JavaScript,不是 JavaScript 发展出来了一个 Node。

NodeJS的作者说,他创造NodeJS的目的是为了实现高性能Web服务器,他首先看重的是事件机制和异步IO模型的优越性,而不是JS。但是他需要选择一种编程语言实现他的想法,这种编程语言不能自带IO功能,并且需要能良好支持事件机制。JS没有自带IO功能,天生就用于处理浏览器中的DOM事件,并且拥有一大群程序员,因此就成为了天然的选择。

如他所愿,NodeJS在服务端活跃起来,出现了大批基于NodeJS的Web服务。而另一方面,NodeJS让前端众如获神器,终于可以让自己的能力覆盖范围跳出浏览器窗口,更大批的前端工具如雨后春笋。

因此,对于前端而言,虽然不是人人都要拿NodeJS写一个服务器程序,但简单可至使用命令交互模式调试JS代码片段,复杂可至编写工具提升工作效率。

三、Node.js与js的区别

1、node.js是平台,Js是编程语言;

2、js是客户端编程语言,需要浏览器的JavaScript解释器进行解释执行;

3、node.js是一个基于Chrome JavaScript运行时建立的平台,它是对Google V8引擎进行了封装的运行环境;

4、node.js就是把浏览器的解释器封装起来作为服务器运行平台,用类似JavaScript的结构语法进行编程,在node.js上运行。

5、node.js与js组成不同

JavaScript:
ECMAScript(语言基础,如:语法、数据类型结构以及一些内置对象)

  • DOM(一些操作页面元素的方法)

  • BOM(一些操作浏览器的方法)

Node.js:

  • ECMAScript(语言基础,如:语法、数据类型结构以及一些内置对象)

  • OS(操作系统)

  • file(文件系统)

  • net(网络系统)

  • database(数据库)

6、顶层对象不同

在JS中的顶层对象是window对象,但是在node中没有什么window对象,node中的顶层对象是global对象。这就是二者的差异性。

在window对象中,定义一个全局变量是可以通过Window来访问的,但是在node中是不能通过global对象来访问的

优缺点:

1.原生js运行文件依赖于浏览器;

2.nodejs运行文件的时候服务为终端;

3.原生js有兼容性问题,nodejs不存在兼容性问题;

4.nodejs可以进行本地的读写,服务器搭建,连接数据库等,而原生js无法做到。

(1)使用node开发还可以使用node自有配套的npm包管理工具:
npm是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
允许用户从npm服务器下载别人编写的第三方包到本地使用。
允许用户从npm服务器下载并安装别人编写的命令行程序到本地使用。
允许用户将自己编写的包或命令行程序上传到npm服务器供别人使用。

Node.js 的使用包管理器 npm来管理所有模块的安装、配置、删除等操作,使用起来非常方便。

(2)node本身就是一个服务端的框架,对于一些简单的项目,我们可以不需要后端配合,直接用node进行数据库的增删改查(但是我们一般不使用这个功能);
(3)nodejs是一个服务js平台,有自身带的npm(基于 Node.js的前端项目包管理工具),有第三方的grunt(基于 Node.js的前端项目构建工具,即脚手架)、有第三方的express(路由功能)等强大的代码与项目管理应用。还有自身带的webpack(基于 Node.js的前端项目部署打包工具),v8(谷歌客户端浏览器Javascript引擎)等强大的功能。
npm(包管理工具)是基于 Node.js的前端项目包管理工具,是项目中对各种程序包的依赖管理,传统的开发项目主要是后端,现在技术在更新,前端有了框架的开发模式管理,也需要用包管理工具的思想去管理,目的是简化第三方程序包在项目中引用复杂化。前端的js包是全世界JavaScript 天才开发共享的各种代码模块,把这些代码模块都按照一个独立的软件功能统一在一个库中,一个代码模块是一个程序包(package,即代码模块)。

四、总结

就前端来说nodejs具有划时代的意义,

nodejs不是一个js框架,千万不要认为是类似jquery的框架,

nodejs是js运行时,运行环境,类比java中jvm,

java的开端是什么,无疑是jvm,自从有了jvm,java才能做到“一次编写处处运行”,

不管你是windows还是linux,只要安装了对应版本的jvm都可以运行.class文件。

同样,nodejs的作用和JVM是一样的,也是js的运行环境,不管是你是什么操作系统,

只要安装对应版本的nodejs,那你就可以用js来开发后台程序。

这具有划时代的意义,意味着一直以来只能在浏览器上玩来玩去的JS,可以做后端开发了,

自从有了nodejs后就催生出一大批用js做后台开发的前端人员,这部分人员就是偏前端的“全栈程序员”。

记住,nodejs是和jvm同等地位的js运行环境,打开了前端人员走向后端的道路。文章来源地址https://www.toymoban.com/news/detail-489347.html

到了这里,关于Node.js详解(二):Node.js与JS的关系的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Nodejs】Node.js简介

    Node 的重要性已经不言而喻,很多互联网公司都已经有大量的高性能系统运行在 Node 之上。Node 凭借其单线程、异步等举措实现了极高的性能基准。此外,目前最为流行的 Web 开发模式是前后端分离的形式,即前端开发者与后端开发者在自己喜欢的 IDE 上独立进行开发,然后通

    2024年02月12日
    浏览(44)
  • node.js中Express简介

    1.什么是Express 官方给出的概念:Express是基于Node.js平台,快速、开放、极简的web开发框架。 通俗理解:Express的作用和Node.js内置的http模块类似,是 专门用来创建web服务器的 Express的本质:就是一个npm上的第三方包,提供了快速创建Web服务器的便捷方法 2.进一步理解Express htt

    2024年02月08日
    浏览(45)
  • Node.js npm V8 React Express的运行配合关系:构建JavaScript应用的基石

    目录 Node.js 和 V8 引擎 Node.js 和 npm LTS(Long Term Support) React Node.js的作用 Express Node.js 和 V8 引擎 Node.js 使用 Google 的 V8 JavaScript 引擎 来执行 JavaScript 代码。V8 是一个高性能的 JavaScript 和 WebAssembly 引擎,用于在 Google Chrome 浏览器和 Node.js 中运行 JavaScript。 V8 引擎的更新 通常包括

    2024年03月12日
    浏览(48)
  • Node.js详解(三):Node.js的安装及基本使用

    Node.js支持在 Windows 、Linux以及在Mac 上安装使用 安装非常简单,无复杂操作;就不多做赘述,挂个连接参考:https://www.runoob.com/nodejs/nodejs-install-setup.html 安装完成,我们可以使用以下命令来查看当前的 Node 版本: $ node -v v18.16.0 注意:不同版本间可能是有差异的。 1、介绍 nvm全

    2024年02月10日
    浏览(49)
  • 写一个简单的node.js项目

    项目初始化:   express是基于node.js的web的http模块封装的更强大的框架 跨域:  数据库: 密码使用bcryptjs包进行加密: 合法性验证 @hapi/job 和 @escook/express-job 包: @hapi/job:为表单中的每个数据项定义验证规则 如果你遇到了这个错误:Cannot mix different versions of joi schemas 安装:

    2024年02月10日
    浏览(89)
  • node.js 如何搭建一个 Web 服务

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,可用于开发各种类型的应用程序,包括 Web 服务。本文将介绍如何使用 Node.js 搭建一个简单的 Web 服务,并附带示例代码。  创建一个名为 node-serve 的文件夹,然后在当前文件下输入初始化node项目命令。 然后一直按回车即可

    2024年04月23日
    浏览(33)
  • 用Node.js吭哧吭哧撸一个运动主页

    某乎问题:人这一生,应该养成哪些好习惯? 问题链接:https://www.zhihu.com/question/460674063 如果我来回答肯定会有 定期运动 的字眼。 平日里也有煅练的习惯,时间久了后一直想把运动数据公开,可惜某运动软件未开放公共的接口出来。 幸运的是,在Github平台冲浪我发现了有同

    2024年02月12日
    浏览(27)
  • Node.js:execSync执行一个shell命令

    默认输出是Buffer对象 需要转为字符串 参考文章 https://www.runoob.com/nodejs/nodejs-process.html https://blog.csdn.net/weixin_43972437/article/details/130643741

    2024年02月15日
    浏览(41)
  • node.js 详解

    目录 一. 初始node.js 1.为什么 JavaScript 可以在浏览器中被执行? 2. node.js 简介 3. node.js 查看是否安装 4. 运行文件  (1).在终端中输入 :node  文件 (2). 终端中的快捷键 二. fs 文件系统模块  1. fs.readFile() 和 fs.readFileSync():读取指定文件的内容 2. fs.writeFile()与fswriteFileSync():写入成

    2024年02月04日
    浏览(21)
  • Node.js常用命令详解

    Node.js是一个基于Chrome V8引擎的JavaScript运行环境,广泛应用于服务器端开发。本文将介绍Node.js中常用的命令,包括安装、运行、包管理等方面的操作,并提供详细的使用方法和案例。 node 命令用于执行JavaScript文件。 使用方法 示例 npm (Node Package Manager)是Node.js的包管理工具

    2024年04月10日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包