2016-12-30 67 views
1

也许这个问题看起来很傻。但我有一个快速的。Javascript:为什么typeof()正在将布尔值视为一个字符串?

我学习的JavaScript这些天:

,并试图了解下面的代码。

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

为什么输出是string

我期待输出将是布尔类型。为什么它作为一个字符串返回?

+5

因为'window.name' - 查找 - 使用几乎任何其他var名称检查,如名称例如... window.name speshul –

+2

重命名变量并检查一次。这是因为命名空间 –

+0

尝试非泛型:'var a = true; console.log(typeof(a))' – Rajesh

回答

0

typeof运算符将给我们字符串格式的变量的数据类型。 例如:

var a = false; 
 
console.log(typeof a) 
 
//Result: "boolean" 
 

 
var b = {}; 
 
console.log(typeof b) 
 
//Result: "object" 
 

 

 
var name = true; 
 
console.log(typeof name) 
 
//Result: "string"

具有称为“名称”预定义的变量和该变量的数据类型的每个窗口是“字符串”。打开新窗口,并在控制台中给出名称,它会给空的sting

+1

这并没有回答为什么通过什么看起来像布尔输出'字符串' –

+0

这是正确的我猜...作为@JaromandaX说这是特殊的变量可能是什么?最好不要使用它..:/ –

+0

@ TusharNiras-不是一个特殊的变量或保留字,它是[* window * object]的一个特殊属性(https://developer.mozilla.org/en/docs/Web/API/Window),它与浏览器中的全局对象同义。其他类型的主机不一定有这样的限制,它不是ECMAScript的一部分。 – RobG

相关问题