chrome js 获取文件目录_Node.js系列邂逅node.js

本文介绍了Node.js的基础知识,包括其与浏览器架构的区别、Node.js的架构和应用场景,以及如何安装和管理Node.js版本。还探讨了JavaScript在Node.js中的执行、程序参数传递以及console对象的常用方法。
摘要由CSDN通过智能技术生成

b0277571a268fc38e58078d91b04b820.png

回顾:Node. js是什么

■ 官方对Node.js的定义:

□ Node.js是一个基于V8 JavaScript引擎的JavaScript运行时环境。

■ 也就是说Node.js基于V8引擎来执行JavaScript的代码,但是不仅仅只有V8引擎:

□ 前面我们知道V8可以嵌入到任何C++应用程序中,无论是Chrome还是Node.js,事实上都是嵌入了V8引擎来执行JavaScript代码;

□ 但是在Chrome浏览器中,还需要解析、渲染HTML、CSS等相关渲染引擎,另外还需要提供支持浏览器操作的API、浏览器自己的事件循环等;

□ 另外,在Node.js中我们也需要进行一些额外的操作,比如文件系统读/写、网络IO、加密、压缩解压文件等操作;

浏览器和Node.js架构区别

■ 我们可以简单理解规划出Node.js和浏览器的差异:

f03576d4cb3607d0865e82707e0e844a.png

Node.js架构

■ 我们来看一个单独的Node.js的架构图:

□ 我们编写的JavaScript代码会经过V8引擎,再通过Node.js的Bindings,将任务放到Libuv的事件循环中;

libuv(Unicorn Velociraptor----独角伶盗龙)是使用C语言编写的库;

□ libuv提供了事件循环、文件系统读写、网络IO、线程池等等内容;

□ 具体内部代码的执行流程,我会在后续专门讲解事件和异步IO的原理中详细讲解;

034bdba74d0e2a50124a68e07379a586.png

Node.js的应用场景

■ Node.js的快速发展也让企业对Node.js技术越来越重视,在前端招聘中通常会对Node.js有一定的要求,特别对于高级前端开发工程师,Node.js更是必不可少的技能:

□ 目前前端开发的库都是以node包的形式管理;

□ npm、yarn工具成为前端开发使用最多的工具;

□ 越来越多的公司使用Node.js作为web服务器开发;

□ 大量项目需要借助Node.js完成前后端渲染的同构应用;

□ 资深前端工程师需要未项目编写脚本工具(前端工程师编写脚本通常会使用JavaScript,而不是Python或者shell);

□ 很多企业在使用Electron来开发桌面应用程序;

Node的安装

■ Node.js是2009年诞生的,目前最新的版本分别是LTS 12.19.0以及Current 14.13.1;

□ LTS版本:相对稳定一些,推荐线上环境使用该版本;

□ Current版本:最新的Node版本,包含很多新特性;

■ 这些我们选择什么版本呢?

□ 如果你是学习使用,可以选择current版本;

□ 如果你是公司开发,建议选择LTS版本;

■ Node的安装方式有很多:

□ 可以借助于一些操作系统上的软件管理工具,比如Mac上的homenbrew,Linux上的yum、dnf等;

□ 也可以直接下载对应的安装包下载安装;

■ 我们选择下载安装,下载自己操作系统的安装包直接安装就可以了:

□ window选择.msi安装包,Mac选择.pkg安装包,Linux会在后续部署中讲解;

□ 安装过程中会配置环境变量(让我们可以在命令行使用);并且会安装npm工具;

Node的版本工具

■ 在实际开发学习中,我们只需要使用一个Node版本来开发或者学习即可。

■ 但是,如果你希望通过可以快速更新或者切换多个版本时,可以借助一些工具:

□ nvm:Node Version Manager;

□ n : Interactively Manage Your Node.js Versions(交互式管理你的Node.js版本)

■ 问题:这两个工具都不支持window

□ n : n is not supported natively on Windows.

□ nvm : nvm does not support Windows

JavaScript代码执行

■ 如果我们编写一个js文件,里面存放JavaScript代码,如何来执行它呢?

■ 目前我们知道有两种方式可以执行:

□ 将代码交给浏览器执行;

□ 将代码载入到node环境中执行;

■ 如果我们希望把代码交给浏览器执行:

□ 需要通过让浏览器加载、解析html代码,所以我们需要创建一个html文件;

□ 在html中通过script标签,引入js文件;

□ 当浏览器遇到script标签时,就会根据src加载、执行JavaScript代码;

■ 如果我们希望把js文件交给node执行:

□ 首先电脑上需要安装Node.js环境,安装过程中会自动配置环境变量;

□ 可以通过终端命令node.js文件的方式来载入和执行对应的js文件;

Node程序传递参数

■ 正常情况下执行一个node程序,直接跟上我们对应的文件即可:

node index.js

■ 但是,在某些情况下执行node程序的过程中,我们可能希望给node传递参数:

node index.js env=development coderwhy

■ 如果我们这样来使用程序,就意味着我们需要在程序中获取到传递的参数:

□ 获取参数其实是在process的内置对象中的;

□ 如果我们直接打印这个内置对象,它里面包含特别的信息;

□ 其他的一些信息,比如版本、操作系统等大家可以自行查看,后面用到一些其他的我们还会提到;

■ 现在,我们先找到其中的argv属性:

□ 我们发现它是一个数组,里面包含了我们需要的参数;

f942cf9dbe540bca848c1343f094aab3.png

为什么叫argv呢?

■ 你可能有个疑问,为什么叫argv呢?

■ 在C/C++程序中的main函数中,实际上可以获取到两个参数:

□ argc:argument counter 的缩写,传递参数的个数;

□ argv:argument vector 的缩写,传入的具体参数。

■ 我们可以在代码中,将这些参数信息遍历出来,使用:

2d47cd5011b09ecd1f40e4099448255e.png

Node的输出

■ console.log

□ 最常用的输入内容的方式:console.log

■ console.clear

□ 清空控制台:console.clear

■ console.trace

□ 打印函数的调用栈

等等...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值