浅谈Nodejs中的作用域问题
发布时间 - 2026-01-10 22:07:04 点击率:次在JS中有全局作用域和函数作用域,而在Nodejs中也自己的作用域,分为全局作用域(global)和模块作用域。

js作用域:
以前学js的时候我们的全局对象是window,如:
var a = 10; console.log(window.a);
我们定义的全局变量默认是给window添加一个属性或者方法。
function fn(){
var num = 22;
}
console.log(num);
报错,因为num是在函数中定义的,在函数外部是访问不了函数内部的变量的,虽然可以通过闭包来访问函数中的变量,但这不是我要说的重点,这也就是函数作用域。
好了,今天的重点来了,Nodejs中的作用域是什么样的?
首先我在文件1.js中定义了一个全局变量,全局变量用global来定义。
global.web = "Nodejs";
然后我通过2.js来引用1.js文件
require('./1.js');
在nodejs中已经没有了html,dom,和bom了,自然也没有了script标签,在node中如果需要引入一个文件则需要通过require方法来加载这个文件,里面写对应的文件路径,一般我们写相对路径,相对路径前面需要加./如果是绝对路径则用/。接下来我们在2.js中访问一下这个全局变量。
console.log(global.web); //Nodejs
ok,
这比较简单,一开始我还说了在Nodejs中还有模块作用域,那模块作用域又是什么?
说到模块作用域,不得不提模块化开发,如果你有过模块化开发的经验你一定曾经为了变量名而头疼过,因为如果你写的代码和你同事写的代码不规范的话,那么在代码中如果出现相同的变量名,那么后面的变量是会覆盖之前的变量的,在js中我们可以通过函数来解决这个问题,而在nodejs中我们除了可以使用函数的作用域以外,nodejs还规定了一种模块作用域,每个文件都是一个模块,也就是说每个文件都有各自的作用域,如果你不通过global来定义变量另外一个文件是访问不了这个文件的变量的。当然如果你想在一个文件访问另外一个文件的变量,除了global以外还有一种方法,后面我们会说到。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# Nodejs
# 作用域
# 解析NodeJs的调试方法
# Linux环境下nodejs的安装图文教程
# nodejs连接mongodb数据库实现增删改查
# Nodejs 搭建简单的Web服务器详解及实例
# Nodejs下用submit提交表单提示cannot post错误的解决方法
# NodeJS和BootStrap分页效果的实现代码
# nodejs简单实现操作arduino
# NodeJs读取JSON文件格式化时的注意事项
# nodejs微信公众号支付开发
# nodeJs内存泄漏问题详解
# 全局变量
# 如果你
# 而在
# 说到
# 另外一个
# 自己的
# 都是
# 变量名
# 是在
# 都有
# 来了
# 我在
# 好了
# 我还
# 又是
# 也没
# 说了
# 中有
# 和你
# 你想
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在阿里云完成域名注册与建站?
如何在阿里云部署织梦网站?
php json中文编码为null的解决办法
b2c电商网站制作流程,b2c水平综合的电商平台?
Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制
如何在云主机上快速搭建网站?
Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】
如何在IIS中新建站点并解决端口绑定冲突?
Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率
Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复
Laravel如何优化应用性能?(缓存和优化命令)
Laravel如何创建自定义中间件?(Middleware代码示例)
用v-html解决Vue.js渲染中html标签不被解析的问题
如何在万网开始建站?分步指南解析
Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程
Python3.6正式版新特性预览
米侠浏览器网页背景异常怎么办 米侠显示修复
Android okhttputils现在进度显示实例代码
如何用免费手机建站系统零基础打造专业网站?
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法
深圳网站制作的公司有哪些,dido官方网站?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
Laravel如何使用Livewire构建动态组件?(入门代码)
猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
Laravel如何与Inertia.js和Vue/React构建现代单页应用
Python正则表达式进阶教程_复杂匹配与分组替换解析
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
浅谈Javascript中的Label语句
Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】
如何确保西部建站助手FTP传输的安全性?
如何用腾讯建站主机快速创建免费网站?
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
Python文件异常处理策略_健壮性说明【指导】
phpredis提高消息队列的实时性方法(推荐)
微信推文制作网站有哪些,怎么做微信推文,急?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
详解jQuery停止动画——stop()方法的使用
Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践
,网页ppt怎么弄成自己的ppt?
Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程
JS中对数组元素进行增删改移的方法总结
Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南
如何在阿里云虚拟服务器快速搭建网站?
JavaScript常见的五种数组去重的方式
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
如何在 Pandas 中基于一列条件计算另一列的分组均值
详解Android——蓝牙技术 带你实现终端间数据传输

