创建JavaScript布尔变量

Hen*_*ein 6 javascript

deletemode = new Boolean(false);

if(deletemode) alert("TRUE"); else alert("FALSE");

alert(deletemode);
Run Code Online (Sandbox Code Playgroud)

我希望看到FALSE警报,但我看到了TRUE警报

我读了MDN并且阅读了

deletemode = new Boolean(true);
Run Code Online (Sandbox Code Playgroud)

这是创建错误布尔变量的方法

但是当我运行上面的语句时,我看到"TRUE",然后在第二个警报中我看到了错误.

如果我这样做,它会做我期望它做的事情

if(deletemode===false) 
Run Code Online (Sandbox Code Playgroud)

if(deletemode) 
Run Code Online (Sandbox Code Playgroud)

JavaScript语法错误?

wmo*_*ock 7

这是意外的原因是因为new Boolean(false)返回一个对象.在JS中,所有对象都评估为真值.这就是为什么你的测试警告'TRUE',因为'if'结构只是检查表达式是否真实.

此外,您永远不应该使用布尔构造函数创建布尔值.相反,只需使用文字值,truefalse.