也许这个问题看起来很傻。但我有一个快速的。Javascript:为什么typeof()正在将布尔值视为一个字符串?
我学习的JavaScript这些天:
,并试图了解下面的代码。
var name = true;
console.log(typeof(name));
为什么输出是string
?
我期待输出将是布尔类型。为什么它作为一个字符串返回?
也许这个问题看起来很傻。但我有一个快速的。Javascript:为什么typeof()正在将布尔值视为一个字符串?
我学习的JavaScript这些天:
,并试图了解下面的代码。
var name = true;
console.log(typeof(name));
为什么输出是string
?
我期待输出将是布尔类型。为什么它作为一个字符串返回?
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
这并没有回答为什么通过什么看起来像布尔输出'字符串' –
这是正确的我猜...作为@JaromandaX说这是特殊的变量可能是什么?最好不要使用它..:/ –
@ TusharNiras-不是一个特殊的变量或保留字,它是[* window * object]的一个特殊属性(https://developer.mozilla.org/en/docs/Web/API/Window),它与浏览器中的全局对象同义。其他类型的主机不一定有这样的限制,它不是ECMAScript的一部分。 – RobG
因为'window.name' - 查找 - 使用几乎任何其他var名称检查,如名称例如... window.name speshul –
重命名变量并检查一次。这是因为命名空间 –
尝试非泛型:'var a = true; console.log(typeof(a))' – Rajesh