Javascript:为什么typeof()将布尔值作为字符串返回?
也许你会觉得这个问题很傻。但我有一个快速的 这几天我在学习JavaScript: 并试图理解下面的代码Javascript:为什么typeof()将布尔值作为字符串返回?,javascript,boolean,Javascript,Boolean,也许你会觉得这个问题很傻。但我有一个快速的 这几天我在学习JavaScript: 并试图理解下面的代码 var name=true; console.log(typeof(name))typeof运算符将以字符串格式为我们提供变量的数据类型。 例如: var a=false; console.log(类型a) //结果:“布尔” var b={}; console.log(类型b) //结果:“对象” var name=true; console.log(名称类型) //结果:“string
var name=true;
console.log(typeof(name))代码>typeof运算符将以字符串格式为我们提供变量的数据类型。
例如:
var a=false;
console.log(类型a)
//结果:“布尔”
var b={};
console.log(类型b)
//结果:“对象”
var name=true;
console.log(名称类型)
//结果:“string”
typeof运算符将以字符串格式为我们提供变量的数据类型。
例如:
var a=false;
console.log(类型a)
//结果:“布尔”
var b={};
console.log(类型b)
//结果:“对象”
var name=true;
console.log(名称类型)
//结果:“string”
因为window.name
-查找它-使用几乎任何其他变量名称进行检查,例如name。。。name是speshulrename,请为变量命名并检查一次。这是因为名称空间尝试一些非泛型的东西:var a=true;console.log(typeof(a))
。为什么初学者以明显的名字开头?将“我的”添加到变量名可以修复所有问题。需要明确的是:在浏览器中,name
是一个预定义的全局变量,它可以将分配给它的任何值转换为字符串。在谈到编程语言时,“Reserved(word)”是一个非常具体的意思,而name
不是保留的。它在JavaScript中没有任何意义。因为window.name
-查找它-使用几乎任何其他变量名称进行检查,例如name。。。name是speshulrename,请为变量命名并检查一次。这是因为名称空间尝试一些非泛型的东西:var a=true;console.log(typeof(a))
。为什么初学者以明显的名字开头?将“我的”添加到变量名可以修复所有问题。需要明确的是:在浏览器中,name
是一个预定义的全局变量,它可以将分配给它的任何值转换为字符串。在谈到编程语言时,“Reserved(word)”是一个非常具体的意思,而name
不是保留的。它在JavaScript中没有任何意义。这并没有回答为什么传递看起来像布尔值的输出“字符串”的问题,我想这是对的。。。正如@JaromandaX所说,它的特殊变量可能是什么?最好不要使用它/@TusharNiras不是一个特殊的变量或保留字,它是的一个特殊属性,在浏览器中和全局对象同义。其他类型的主机不一定有这样的限制,它不是ECMAScript的一部分。这并不能回答为什么传递看起来像布尔值的输出“字符串”的问题,我想这是对的。。。正如@JaromandaX所说,它的特殊变量可能是什么?最好不要使用它/@TusharNiras不是一个特殊的变量或保留字,它是的一个特殊属性,在浏览器中和全局对象同义。其他类型的主机不一定有这样的限制,它不是ECMAScript的一部分。