node环境下通过var声明的对象是挂载到哪里?
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
那是因为你执行的代码被函数包裹,
var
在函数作用域顶部。而如果你是进入node
指令窗口写这段代码,那就在global
上。你这样写不会再global挂载age
你需要这么写:
这个
var
属于模块作用域,只在当前js文件内有效,并不是全局的;想要全局,需要global.age = 1
确定这个代码不会报错吗???
如果运行环境是 node,那么根本不存在window
如果运行环境是 browser,那么根本不存在 global