为什么 `var` 和 `let` 在 firefox web console 中有区别,而在 node.js 中却没有?

Why is this difference between `var` and `let` in firefox web console but not in node.js?

在node.js

> var name = 12; 
> console.log(typeof name);
number

在 Firefox 的网络控制台中

var name = 12; 
console.log(typeof name);
string 

let name2 = 12; 
console.log(typeof name2);
number 

为什么 Firefox 中的 varlet 有区别?

为什么 node.js 没有这样的区别?

window 上有一个名为 name 的内置 属性:

console.log(name);

因此您的代码将寻找它,而不是您创建的 name

在我看来,从输出来看,node.js 不会像 Firefox 的 Web 控制台那样启动解释器的工作 - 这意味着在 node.js 中类似于它识别为数字的编译语言。 在 Firefox 的 Web 控制台中,它使用 var 将“12”作为字符串保存到内存中,或者仅将其作为数字使用 let 而不将其保存到内存中。