为什么 var name = 'jose' !== ''; return "true" 不对?

Why does var name = 'jose' !== ''; return "true" and not true?

当我 运行 var name = 'jose' !== ''; 在我的控制台中时,它 returns "true"

为什么 return "true" 作为字符串而不是 true 作为布尔值?

我用不同的变量名试过,它 return 是一个布尔值。 即:var bobby = 'bob' !== '';

因为namewindow.name。始终为字符串的特殊变量。在任何空浏览器的控制台中输入它,您将得到 "".

您正在您的语句中重新分配它的值。

https://developer.mozilla.org/en-US/docs/Web/API/Window/name

变量name。它引用window.name,这是window的名称。

也可变document

window.name ,window.document [can't change var name from being window.name, which is a string]

不要将名称用作全局变量。

例如

var name = {Name : "dd"};
console.log(name.Name);//Since it's a primitive won't work