【问题标题】:Javascript : Why typeof() is returing boolean value as a string? [duplicate]Javascript:为什么 typeof() 将布尔值作为字符串返回? [复制]
【发布时间】:2016-12-30 06:42:57
【问题描述】:

也许你觉得这个问题很傻。但我有一个快速的。

我最近在学习 JavaScript

并试图理解以下代码。

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

为什么输出是string

我希望输出是布尔类型。为什么它作为字符串返回?

【问题讨论】:

  • 因为window.name - 查找 - 使用几乎任何其他 var 名称进行检查,例如 Name ... window.name 是 speshul
  • 重命名变量并检查一次。这是因为命名空间
  • 尝试一些非通用的:var a = true; console.log(typeof(a))
  • window.name.为什么初学者以明显的名字开头?将 "my" 添加到变量名可以解决所有问题。
  • 要明确一点:在浏览器中,name 是一个 预定义 全局变量,它将分配给它的任何值转换为字符串。在谈论编程语言时,“保留(单词)”作为一个非常具体的含义,而name 不是保留。它在 JavaScript 中没有任何意义。

标签: javascript boolean


【解决方案1】:

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"

每个窗口都有一个名为“name”的预定义变量,该变量的数据类型是“string”。打开新窗口并在控制台中输入名称,它将给出空刺

【讨论】:

  • 这并没有回答为什么传递看起来像布尔输出“字符串”的问题
  • 没错,我猜...正如@JaromandaX 所说,它的特殊变量可能是?最好不要使用它.. :/
  • @TusharNiras——不是特殊变量或保留字,它是 window object 的特殊属性,与浏览器中的全局对象同义。其他类型的主机不一定有这样的限制,它不是 ECMAScript 的一部分。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-25
  • 2015-11-23
  • 2023-03-10
  • 2011-02-25
  • 2018-05-03
  • 1970-01-01
相关资源
最近更新 更多