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

时间:2018-04-21 22:52:05

标签: javascript

我今天只是随机练习JS代码,我把这行代码运行并运行代码。

var name = 45;
console.log(typeof name);

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

var age = 45;
console.log(typeof age);

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

1 个答案:

答案 0 :(得分:5)

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