JavaScript中数字变量的意外类型值

xrk*_*lix 3 javascript

我今天只是随机练习JS代码,我把这行代码放到了代码中.

var name = 45;
console.log(typeof name);
Run Code Online (Sandbox Code Playgroud)

它告诉我变量名的类型是一个字符串.这很奇怪但是当我键入这个时,Name的类型是String:

var age = 45;
console.log(typeof age);
Run Code Online (Sandbox Code Playgroud)

但这里的变量年龄类型是Number.为什么我会观察到这种不一致?是一些约会还是这样的?

Mát*_*nka 5

如果您在浏览器中运行它,那么我认为这是因为默认执行上下文是窗口对象.基本上,您声明的每个全局值都将成为窗口对象的属性,反之亦然:窗口对象的每个属性都可用作全局变量(例如console).name默认情况下,Window对象具有属性,并将其重新声明为变量不会影响该属性.无论如何,这是我能得到解释的最接近的.