45天带你玩转Node(第二天)走进Node.js「建议收藏」

45天带你玩转Node(第二天)走进Node.js「建议收藏」粉丝要求博主系统的写一篇关于Node.js的学习资料,但其实我们的Node.js知识点并不少,所以博主为大家搭建了一个专栏,为了方便大家系统的学习Node.js,大家记得订阅哦!虽然我们的Node.js还很年轻,但是他也已经有了很高的地位,让我们尽情的畅游在Node.js的专栏中吧,希望通过此专栏我们能够系统的将Node.js学好,它将会成为我们的一大亮点,我们可以用这款前端中的后端语言让提升我们的价值与眼界,如今的他也已经成为面试官口中的高并发面试内容了,一起加油!

大家好,又见面了,我是你们的朋友全栈君。

45天带你玩转Node

粉丝要求博主系统的写一篇关于Node.js的学习资料,但其实我们的Node.js知识点并不少,所以博主为大家搭建了一个专栏,为了方便大家系统的学习Node.js,大家记得订阅哦!虽然我们的Node.js还很年轻,但是他也已经有了很高的地位,让我们尽情的畅游在Node.js的专栏中吧,希望通过此专栏我们能够系统的将Node.js学好,它将会成为我们的一大亮点,我们可以用这款前端中的后端语言让提升我们的价值与眼界,如今的他也已经成为面试官口中的高并发面试内容了,一起加油!

在这里插入图片描述

V8 JavaScript 引擎

我们都知道⼏乎所有现代主流浏览器都全⾯⽀持了ECMAScript 5.1版标准,⽽JavaScript的标准是。那么我们就容易认为JavaScript是⼀种浏览器端的解释型编程脚本。那么脱离了浏览器,JavaScript还能够解释运⾏吗?答案是肯定的,也就是说脱离了浏览器,在特定环境下JavaScript还是能运⾏的。JavaScript向来以Web⽹页的脚本语⾔⽽著称,但现在也可以,例如或者。我们都知道⼏乎所有现代主流浏览器都全⾯⽀持了ECMAScript 5.1版标准,⽽JavaScript的标准是。那么我们就容易认为JavaScript是⼀种浏览器端的解释型编程脚本。那么脱离了浏览器,JavaScript还能够解释运⾏吗?
答案是肯定的,也就是说脱离了浏览器,在特定环境下JavaScript还是能运⾏的。JavaScript向来以Web⽹页的脚本语⾔⽽著称,但现在也可以,例如或者。本⽂就是基于NodeJS来进⾏探讨。

V8 是驱动 Google Chrome 的 JavaScript 引擎的名称。 这是在使用 Chrome 浏览时获取我们的 JavaScript 并执行它的东西。
V8 提供了 JavaScript 执行的运行时环境。 DOM 和其他 Web 平台 API 由浏览器提供。

很酷的是 JavaScript 引擎独立于它所在的浏览器。 这个关键特性促成了 Node.js 的兴起。 早在 2009 年,V8 就被选为驱动 Node.js 的引擎,随着 Node.js 的流行,V8 成为现在为大量使用 JavaScript 编写的服务器端代码提供驱动的引擎。

Node.js 生态系统非常庞大,这要归功于 V8,它还支持桌面应用程序,例如 Electron 等项目。

其他的JS引擎

  • Firefox 具有 SpiderMonkey
  • Safari 具有 JavaScriptCore(也称为 Nitro)
  • Edge 最初基于 Chakra,但最近使用 Chromium 和 V8 引擎重建。

还有许多其他的存在。

所有这些引擎都实现了 ECMA ES-262 标准,也称为 ECMAScript(JavaScript 使用的标准)。

追求性能

V8 是用 C++ 编写的,并且在不断改进。 它是可移植的,可以在 Mac、Windows、Linux 和其他几个系统上运行。

在此 V8 介绍中,我们将忽略 V8 的实现细节:它们可以在更权威的网站上找到(例如 V8 官方网站),它们经常会从根本上随着时间的推移而变化。

V8 一直在发展,就像周围的其他 JavaScript 引擎一样,以加速 Web 和 Node.js 生态系统。

在 web 上,性能竞赛已经持续了多年,我们(作为用户和开发人员)从这场竞争中受益匪浅,因为我们年复一年地获得更快、更优化的机器。

编译

JavaScript 通常被认为是一门解释型语言,但是现代的 JavaScript 引擎不再只是解释 JavaScript,它们会编译它。

这从 2009 年开始发生,当时 SpiderMonkey JavaScript 编译器被添加到 Firefox 3.5 中,所有人都遵循这个想法。

JavaScript 由 V8 在内部使用即时 (JIT) 编译以加快执行速度。

这可能看起来有悖常理,但自从 2004 年 Google 地图推出以来,JavaScript 已经从一门通常执行几十行代码的语言发展为在浏览器中运行数千到数十万行代码的完整应用程序。

我们的应用程序现在可以在浏览器中运行数小时,而不仅仅是一些表单验证规则或简单的脚本。

在这个新世界中,编译 JavaScript 非常有意义,因为虽然准备好 JavaScript 可能需要更多时间,但是一旦完成,它将比纯粹的解释型代码性能更高。

运行 Node.js 脚本

运行 Node.js 程序的常用方法是,运行全局可用的命令 node(安装 Node.js 之后)并且传入您要执行的文件的名称。

如果您的 Node.js 主应用程序文件是 app.js,则您可以通过键入以下来调用它:

node app.js

以上,你显式地告诉 shell 使用 node 运行你的脚本。 您也可以使用 “shebang” 行将此信息嵌入到 JavaScript 文件中。 “shebang” 是文件的第一行,它告诉操作系统使用哪个解释器来运行脚本。 以下是 JavaScript 的第一行

#!/usr/bin/node

以上,我们显式地给出了解释器的绝对路径。 并非所有操作系统的 bin 文件夹中都有 node,但都应该有 env。 您可以告诉操作系统使用 node 为参数运行 env:

#!/usr/bin/env node

// 你的代码

要使用 shebang,您的文件应该具有可执行权限。 您可以通过运行以下赋予 app.js 可执行权限:

chmod u+x app.js

当运行命令时,请确保您位于包含 app.js 文件的同一目录中。

总结

本篇文章大部分也都是一些按照官网总结的理论内容,主要就是让大家对Node.js有基本的了解,了解我们V8、了解我们的Node优势,下一节我们就为大家带来我们Node的实操内容了哦!!!我们下篇见。

本期推荐

随着网络技术的迅速发展,如何有效地提取并利用信息,以及如何有效地防止信息被爬取,已成为一个巨大的挑战。本书从零基础开始讲解,系统全面,案例丰富,注重实战,既适合Python程序员和爬虫爱好者阅读学习,也可以作为广大职业院校相关专业的教材或参考用书。础操作、图形处理基本操作、简单图形的绘制和对象的管理等内容。
在这里插入图片描述

面试法宝

很多伙伴找到我询问面试题,问我针对于前端有没有比较体系化的面试题总结,今天就给大家推荐这款面试法宝
点击链接直达

https://www.nowcoder.com/link/jihexinliang260

就是我们的牛客网,各大互联网大厂面试真题。从基础到入阶乃至原理刨析类面试题 应有尽有,赶快来装备自己吧!助你面试稳操胜券,solo全场面试官
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160201.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 关系数据库理论之最小函数依赖集「建议收藏」

    关系数据库理论之最小函数依赖集「建议收藏」前言在本文中,会介绍为什么要引入最小函数依赖集,最小函数依赖集是什么,以及如何求最小函数依赖集。为什么需要最小函数依赖集在关系数据模型中,一个关系通常由R(U,F)构成,U为属性的全集,F为函数依赖集。在实际生活中,我们可以根据语义来定义关系中属性的依赖关系,例如学号可以唯一确定一位学生的姓名、性别等等。但是,有时候给出的函数依赖集并不是最简的,这有时会拖累我们对关系的后续处理,例如关系的分…

    2022年6月17日
    24
  • mysql备份的三种方案

    mysql备份的三种方案本文转自https://www.cnblogs.com/fengzhongzhuzu/p/9101782.html建议阅读:https://www.cnblogs.com/clsn/p/8150036.html一、备份的目的做灾难恢复:对损坏的数据进行恢复和还原需求改变:因需求改变而需要把数据还原到改变以前测试:测试新功能是否可用二、备份需要考虑的问题可以容忍丢失多长时间的…

    2022年6月17日
    29
  • TransactionScope事务级别

    TransactionScope事务级别在TransactionScope中默认的事务级别是Serializable,即在事务过程中,完全性锁表。别的进程不能查询,修改,新增,删除。这样会导致效率大大降低,虽然数据完整性很高。通常我们不需要那么高的数据完整性。所以需要修改默认的事务级别 所有的事务级别如下Chaos无法改写隔离级别更高的事务中的挂起的更改。ReadCommitted不可以在事务期间读取可变

    2022年7月19日
    12
  • vuedevtools使用_怎么下载vue_devtools

    vuedevtools使用_怎么下载vue_devtoolsCSDN首页首页博客程序员学院下载论坛问答代码直播电子书最牛小程序:想要的资源都能搜到?会员中心收藏动态消息15创作中心vue调试工具vue-devtools安装及使用(最新)清虚桂意2020-06-2310:27:29606已收藏4分类专栏:vue版权github克隆vue-devtools官方项目地址gitclone-bv5.1.1https://github.com/vuejs/vue-devtools.git1此处安装v5.1

    2022年10月5日
    4
  • linux安装启动nginx_centos7 安装

    linux安装启动nginx_centos7 安装环境:VMware16pro,centos7解决:安装nginx前的准备安装gcc环境:在官网下载的nginx源码需要编译,所以需要gcc环境。yuminstallgcc-c++安装PCREpcre-develNginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法。这里需要安装两个安装包pcre和pcre-devel。第一个安装包提供编译版本的库,而第二个提供开发阶段的头文件和编译项目的源代码。安装命令如下:yuminstall-ypcr

    2022年10月5日
    2
  • linux生成initramfs,Linux启动过程与initramfs

    linux生成initramfs,Linux启动过程与initramfsLinux启动过程概述这里先简单列一下Linux操作系统启动的全过程:按下电脑的电源键后,电脑通电,BIOS启动;BIOS读取硬盘的MBR,运行启动扇区中的代码,旧系统往往需要自己写启动扇区,而新系统基本上由专用的启动软件接管了,在Linux世界中,目前都是用的Grub2。由于启动扇区空间太小,放不下太复杂的代码逻辑,所以Grub2也使用了多阶段启动的策略;Grub2负责将操作系统…

    2022年8月11日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号