node环境下通过var声明的对象是挂载到哪里?

发布于 2022-09-07 19:53:59 字数 453 浏览 13 评论 0

clipboard.png

node环境下通过var声明的对象是挂载到global全局对象上面吗?但是我通过global.变量名 打印出来的结果怎么是undefined呢?
求大佬帮忙解疑一下?

var age = 22;
var printAge = function (age) {
    console.log(age);
}
console.log('var声明的变量',window.age===22);//false
console.log('var声明的变量',window.printAge===printAge);//false
console.log(global);//window
console.log(global.age);//undefined

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

鹿童谣 2022-09-14 19:53:59
(function(exports, require, module, filename, dirname)){
   //你执行的代码
}

那是因为你执行的代码被函数包裹,var在函数作用域顶部。而如果你是进入node指令窗口写这段代码,那就在global上。

鯉魚旗 2022-09-14 19:53:59

你这样写不会再global挂载age

你需要这么写:

// 这里这里没有var
age = 22;
var printAge = function(age) {
  console.log(age);
};

console.log(global.age); //22
感悟人生的甜 2022-09-14 19:53:59

这个var属于模块作用域,只在当前js文件内有效,并不是全局的;想要全局,需要 global.age = 1

山田美奈子 2022-09-14 19:53:59

确定这个代码不会报错吗???

如果运行环境是 node,那么根本不存在window

如果运行环境是 browser,那么根本不存在 global

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文