前端需要去了解的nodejs知识(全局变量)

简介: 千里之行始于足下,九层之台起于累土。一门技术语言的学习过程也是如此,从基础开始一步步深入,每门语言的全局API都是我们入门的开始,前面几篇文章已经对核心的一些API进行了了解,本文主要了解下nodejs的工具模块,以及一些全局API。

千里之行始于足下,九层之台起于累土。一门技术语言的学习过程也是如此,从基础开始一步步深入,每门语言的全局API都是我们入门的开始,前面几篇文章已经对核心的一些API进行了了解,本文主要了解下nodejs的工具模块,以及一些全局API。

全局API


基础变量

  • __dirname,__filename:获取当前目录绝对路径和当前文件绝对路径

全局对象global

全局对象global相当于JavaScript中的window,其上挂载了许多的属性,我们使用Object.getOwnPropertyNames(global)可以查看所有的属性名称,其中我们常用的有很多下面介绍下几个常用并且重要的属性。

console.log(Object.getOwnPropertyNames(global))
[
 *****
  'BigInt64Array',        'DataView',          'Map',
  'BigInt',               'Set',               'WeakMap',
  'WeakSet',              'Proxy',             'Reflect',
  'FinalizationRegistry', 'WeakRef',           'decodeURI',
  'decodeURIComponent',   'encodeURI',         'encodeURIComponent',
  'escape',               'unescape',          'eval',
  'isFinite',             'isNaN',             'global',
  'process',              'Buffer',            'atob',
  'btoa',                 'URL',               'URLSearchParams',
  ******
]

process进程对象

  • 作用:象是一个全局变量,它提供当前 Node.js 进程的有关信息,以及控制当前 Node.js 进程
  • process中有许多进程相关的属性,下面介绍几个常用的属性和方法
  • argv:以数组形式返回nodejs的执行脚本参数
  • platform:运行的操作系统平台
  • version/versions:当前node的版本号/node及相关宝的版本号
  • cwd():当前工作目录
  • uptime():
// __dirname
const dirPath = __dirname;
console.log("dirPath: ", dirPath);
// __filename
const filePath = __filename;
console.log("filePath: ", filePath);
console.log(process.argv);
console.log(process.version);
console.log(process.versions);
setInterval(()=>{
    console.log('the node uptime is: ',process.uptime());
},2000)
console.log(process.cwd());
console.log(process.platform);
---------execute-----------
node demo.js ww
---------output-------------
dirPath:  D:\demo\demo\nodejs\util
filePath:  D:\demo\demo\nodejs\util\global.js
[
  'C:\\Program Files\\nodejs\\node.exe',
  'D:\\demo\\demo\\nodejs\\util\\global.js',
  'ww'
]
v16.15.1
{
  node: '16.15.1',
  v8: '9.4.146.24-node.21',
  uv: '1.43.0',
  zlib: '1.2.11',
  brotli: '1.0.9',
  ***
}
D:\demo\demo\nodejs\util
win32
this is nextTick
the node uptime is:  2.0399197

注:process许多关于进程的知识,本文不做过多说明。

URL地址对象

在nodejs中URL已逐步取代之前的url.parse,使用方法如下

const {URL} = require('url')

url上的主要信息分为:协议 域名 端口 路径 参数 哈希值 完整的url

const url = require('url');
const {URL} = require('url');
const args = process.argv;
// URL对象和浏览器中的对象相似,安全性更高,弥补了url.parse的缺点
const myUrl = new URL(args[2])
// url.parse已逐步废弃
console.log('url: ', myUrl);
--------------- output  --------------
url:  URL {
  // 完整地址
  href: 'https://blog.csdn.net/fredricen/article/details/106994910',
  // 协议+域名
  origin: 'https://blog.csdn.net',
  // 协议
  protocol: 'https:',
  // 用户名
  username: '',
  // 密码
  password: '',
  // 主机+端口
  host: 'blog.csdn.net',
  // 主机
  hostname: 'blog.csdn.net',
  // 端口
  port: '',
  // 路径
  pathname: '/fredricen/article/details/106994910',
  // 查询参数
  search: '',
  searchParams: URLSearchParams {},
  // 哈希值
  hash: ''
}

setTimeout/clearTimeout:等待执行,多少秒后执行

const timer = setTimeout(() => {
  console.log("this is setTimeout");
}, 1000);
//清楚定时器
clearTimeout(timer)

setImmediate/:约等于setTimeout(fn,0),都是宏任务

setImmediate(() => {
  console.log("this is setImmediate");
});

setInterval/clearInterval:定时执行,每隔多少秒执行一次

const interval = setInterval(()=>{
    console.log('this is interval')
},2000)
//清楚定时器
clearInterval(interval)

除此以外nodejs另外还提供了 Buffer,Math、Event等模块相关变量,此处不再介绍使用时可以查阅API文档。


相关文章
|
9月前
|
JavaScript 前端开发 API
Node.js在前端的妙用:打造更出色的Web体验
Node.js在前端的妙用:打造更出色的Web体验
334 5
|
9月前
|
前端开发
前端毕业设计|基于Vue+Nodejs实现游戏资讯平台(二)
前端毕业设计|基于Vue+Nodejs实现游戏资讯平台
107 0
|
4月前
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
83 0
|
5月前
|
存储 前端开发 JavaScript
前端基础(十二)_函数高级、全局变量和局部变量、 预解析(变量提升)、函数返回值
本文介绍了JavaScript中作用域的概念,包括全局变量和局部变量的区别,预解析机制(变量提升),以及函数返回值的使用和类型。通过具体示例讲解了变量的作用域、函数的返回值、以及如何通过return关键字从函数中返回数据。
36 1
前端基础(十二)_函数高级、全局变量和局部变量、 预解析(变量提升)、函数返回值
|
4月前
|
前端开发 JavaScript 程序员
【从前端入门到全栈】Node.js 之核心概念
【从前端入门到全栈】Node.js 之核心概念
|
4月前
|
Web App开发 JavaScript 前端开发
前端Node.js面试题
前端Node.js面试题
|
4月前
|
Web App开发 JavaScript 前端开发
对于 前端 解释下 node.js的必要性
对于 前端 解释下 node.js的必要性
62 0
|
6月前
|
JSON JavaScript 前端开发
JS的无限可能: 前端 精妙DOM技巧至Node.js的服务端
JS的无限可能: 前端 精妙DOM技巧至Node.js的服务端
|
6月前
|
JavaScript IDE 前端开发
前端开发工具配置 nodejs & git & IDE
前端开发工具配置 nodejs & git & IDE
|
6月前
|
资源调度 前端开发 JavaScript
前端 nodejs 命令行自动调用编译 inno setup 的.iss文件
前端 nodejs 命令行自动调用编译 inno setup 的.iss文件

热门文章

最新文章

  • 1
    【Java若依框架】RuoYi-Vue的前端和后端配置步骤和启动步骤
  • 2
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 3
    【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
  • 4
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 5
    详解智能编码在前端研发的创新应用
  • 6
    巧用通义灵码,提升前端研发效率
  • 7
    【07】flutter完成主页-完成底部菜单栏并且做自定义组件-完整短视频仿抖音上下滑动页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
  • 8
    智能编码在前端研发的创新应用
  • 9
    【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
  • 10
    抛弃node和vscode,如何用记事本开发出一个完整的vue前端项目
  • 1
    以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
    24
  • 2
    大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
    43
  • 3
    【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
    25
  • 4
    巧用通义灵码,提升前端研发效率
    84
  • 5
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    137
  • 6
    详解智能编码在前端研发的创新应用
    92
  • 7
    智能编码在前端研发的创新应用
    75
  • 8
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    35
  • 9
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    111
  • 10
    【07】flutter完成主页-完成底部菜单栏并且做自定义组件-完整短视频仿抖音上下滑动页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
    73