首页 > 编程语言 >nodejs的全局变量探讨之二

nodejs的全局变量探讨之二

时间:2023-03-18 19:04:25浏览次数:63  
标签:Jacky arr console name nodejs myname 之二 全局变量 log

之前写过一篇博文对nodejs全局变量做了一些验证,本篇博文将继续探讨这个话题。

建议先看下前篇博文:

​https://blog.51cto.com/livestreaming/5258039​

好了,我们开始今天的测试。

写一个模块,命名为m.js,代码如下:

let myname = "Jacky";
let name = {
myname:"Jacky"
}
let arr = ["Jacky"];

function set(new_name){
myname = new_name;
name.myname = new_name;
arr[0] = new_name
}

function get(){
return myname;
}

module.exports = {name,myname,arr,set,get};

写主程序app.js,把上述模块引用进来:

const m = require('./m');
const m2 = require('./m');

console.log(m.myname);
console.log(m.name);
console.log(m.arr);
console.log(m.get());
m.set("John");
console.log("----------");
console.log(m2.myname);
console.log(m2.name);
console.log(m2.arr);
console.log(m2.get());

可以看出,主要目的是验证模块中的基本变量、对象变量被引用后是否具有全局效应。

输出结果如下:

Jacky
{ myname: 'Jacky' }
[ 'Jacky' ]
Jacky
----------
Jacky //可见引用的副本并没有改变
{ myname: 'John' }
[ 'John' ]
John

可见,对于基本变量,作为属性导出,引用时是作为一个副本使用的,因此不能作为全局变量使用。

要想作为全局变量使用:

1)使用对象或数组,改变对象或数组内的属性,这样在任何引用的地方都会感知到内容的变化,起到全局共享的作用

2)通过模块接口方法赋值和取值,也具有全局效果。

标签:Jacky,arr,console,name,nodejs,myname,之二,全局变量,log
From: https://blog.51cto.com/livestreaming/6129740

相关文章

  • storybook添加全局样式与sass全局变量设置
    storybook组件需要全局样式,只需在.storybook/preview.js增加全局样式即可。import '../src/style/index.scss';export const parameters = {  actions: { arg......
  • 模拟电子技术之二极管及其基本电路
    从这一部分开始,内容的难度开始加大,下面一起来看一下二极管都有哪些知识点​​半导体基本知识​​​​PN结的形成及特性​​​​二极管及其简化模型​​​​二极管基本电路......
  • 如何在jvm dump出的堆文件中查看指定成员数据,或者全局变量
    很多时候,当程序OOM或者其他异常情况时,我们需要搞清楚当时应用内部数据情况,所有某些时候我们需要查看当时内存镜像中某些成员变量的值。比如查看当时内存实例中数据库账号,......
  • 基础算法模板之二分
    二分1.算法分析对于一个有序的序列,在查找某个值时可以优先考虑中间值与待查找值的关系来缩减查找范围,每次可以缩减一半,因此称为二分。由于每次处理的数据量变为原来的......
  • nodejs的一个十六进制 加密 和 逆算法
    constkaitou="$@$@";Buffer.from(kaitou,"utf8").toString("hex");给以以上nodejs的逆算法consthexString="24402440";//十六进制字符串constbuffer=Bu......
  • QT5笔记: 8. QT的全局变量(基本数据类型、函数、宏)
    这个头文件中存放着QT类库的一些全局定义,一般Qt类的头文件会包含这个头文件:基本数据类型函数宏数据类型:保证跨平台时各数据类型长度统一函数定义(一些数......
  • 深入nodejs的event-loop
    此处如无特殊指出的话,eventloop的语境都是指nodejs本文研究所用的nodejs环境是:操作系统window10+nodejs版本号为v12.16.2什么是eventloop?eventloop是指由libuv......
  • 彻底搞懂nodejs事件循环
    nodejs是单线程执行的,同时它又是基于事件驱动的非阻塞IO编程模型。这就使得我们不用等待异步操作结果返回,就可以继续往下执行代码。当异步事件触发之后,就会通知主线程,主线......
  • 使用nodeJs框架koa2搭建项目后端
    使用koa2搭建项目后端 github源码地址:https://github.com/liuerhost/koa2-demo.git1.安装koa脚手架—koa-generatornpminstall-gkoa-generator2.创建koa2项目......
  • nodejs安装使用express
    NodeJs快速搭建Express框架1.用Express应用程序生成器express-generator进行快速搭建。1.1安装express-generator命令npminstallexpress-generator-g1.2生成......