关于全局变量,node下和浏览器下输出为什么不一样?是因为严格模式吗?求详解

node版本 10.13.0

var name = "window";function foo() {    var name = "inner";    console.log(this.name);
}
foo();  // undefined码

chrome 69 严格模式和非严格模式
https://img2.mukewang.com/5c84af240001818904400281.jpg

差别就是在严格模式上吗?
node的严格模式是自动启用的?
多谢各位大佬


一只萌萌小番薯
浏览 761回答 2
2回答

红糖糍粑

差别在作用域上,node 默认没有启用严格模式。浏览器中,全局作用域下声明的变量会自动成为全局变量(window 下的一个属性)。node中,每个模块(文件)有自己模块作用域,你在里面声明一个变量并不会成为 node 的全局变量,而只是这个模块作用域下的变量。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript
Java