创建 JavaScript 布尔变量
Create JavaScript boolean variable
deletemode = new Boolean(false);
if(deletemode) alert("TRUE"); else alert("FALSE");
alert(deletemode);
我希望看到错误警报,但我看到的是真正的警报
我读了MDN,它读了
deletemode = new Boolean(true);
这就是创建假布尔变量的方法
但是当我运行上面的语句时,我看到"TRUE",然后在第二个警报中我看到 false。
如果我这样做,它会做我希望它做的事情
if(deletemode===false)
是
if(deletemode)
JavaScript语法错误?
这是意外的原因是new Boolean(false)
返回一个对象。在 JS 中,所有对象的计算结果都为真实值。这就是为什么您的测试发出警报"TRUE"的原因,因为"if"构造只是检查表达式是否真实。
此外,切勿使用 Boolean 构造函数创建布尔值。相反,只需使用文字值,true
或false
。
===
严格相等运算符将返回false
,因为Boolean
对象和布尔文本并不严格相等。 事实上,即使这样也会返回 false,因为两个新创建的对象不是同一个对象:
new Boolean(true) === new Boolean(true) // is false
但是,deletemode == false
测试将返回true
,因为它将在对象上调用.valueOf()
方法并获取值false
,因此正确比较等于false
。
alert()
函数始终对其参数调用.toString()
,因此也显示false
而不是默认[Object object]
。
我想你可能会在下面的链接中找到一些答案。简短的回答:使用新的 Boolean() 构造函数会在您的值周围创建一个包装器,以便调用变量始终返回 true。如果你只想存储 true/false,而对保存值的变量没有任何额外的函数或逻辑,那么你可能应该直接分配它。即,var 删除模式 = 假
Java script中新布尔()的目的是什么?
相关文章:
- 我的django模板布尔变量是't在javascript中按预期工作
- 在javascript函数的循环中设置全局布尔变量的最佳语法
- 在Javascript中访问Razor布尔变量时出错
- 布尔变量的行为很奇怪
- 如何根据布尔变量隐藏元素
- 创建 JavaScript 布尔变量
- 布尔变量未定义
- 如何在 VueJS 0.11 中将布尔变量输出为“是/否”
- 布尔变量 JavaScript
- 如何通过php变量设置javascript布尔变量
- 从XML(而不是字符串)中获取布尔变量
- Javascript中的布尔变量
- 在JS中查询布尔变量与比较两个字符串
- 如何在JavaScript中的IF语句中使用具有布尔值的变量作为条件
- Jquery Ajax布尔变量不能正常工作
- 只有当变量(布尔值)改变时才调用javascript/jquery函数
- 一旦布尔变量为假,在其他情况下不要返回真
- 如何声明一个javascript变量并将其值赋给一个返回布尔值的php文件
- 当复选框被选中时设置布尔变量
- $_GET变量在字符串和布尔操作中不显示