【发布时间】:2016-09-06 05:18:48
【问题描述】:
当我在控制台中运行var name = 'jose' !== ''; 时,它返回"true"
为什么它返回 "true" 作为字符串而不是 true 作为布尔值?
我尝试使用不同的变量名,它返回一个布尔值。
即:var bobby = 'bob' !== '';
【问题讨论】:
标签: javascript string boolean comparison
当我在控制台中运行var name = 'jose' !== ''; 时,它返回"true"
为什么它返回 "true" 作为字符串而不是 true 作为布尔值?
我尝试使用不同的变量名,它返回一个布尔值。
即:var bobby = 'bob' !== '';
【问题讨论】:
标签: javascript string boolean comparison
因为name 是window.name。始终为字符串的特殊变量。在任何空浏览器的控制台中输入它,你会得到""。
你在你的声明中重新分配了它的价值。
https://developer.mozilla.org/en-US/docs/Web/API/Window/name
【讨论】:
var bobby 是不同的变量名,所以它不在字符串中。
window.bobby。
var name 强制它是本地的吗?
window。
变量name。它指的是window.name,即窗口的名称。
也是变量document
window.name ,window.document [不能将var name从window.name改为字符串]
不要将名称用作全局变量。
例如
var name = {Name : "dd"};
console.log(name.Name);//Since it's a primitive won't work
【讨论】: