JavaScript IF.ELSE条件未输出预期值
JavaScript IF..ELSE Conditions not outputting expected value
我正在学习Javascript教程。我正在测试Boolean()
函数和If…Else条件。
我在网站上有一个按钮。当我点击按钮时,它会显示布尔变量(myvar
)的当前状态以及相应的状态(myvartxt
)(即false
表示"OFF",true
表示"ON")。这样做的原因是,稍后我想切换LED的开/关,不想让它说false/true,而是开/关。
现在的问题是,当我点击按钮时,布尔值(myvar)的状态是false,这是正确的,但myvartxt变量在应该说OFF的时候是ON。我只是不明白。有什么想法吗?提前感谢您的帮助!
在这里快速测试代码:
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<p id="demo1"></p>
<button onclick="myFunction()">Try it</button>
<script type="text/javascript">
function myFunction()
{
//Initial state
var myvar=new Boolean(0);
var myvartxt = "OFF";
//display current state of Boolean
var x=document.getElementById("demo");
x.innerHTML=myvar.toString();
//display corresponding ON -> true, OFF -> false
if (myvar) //INITIALLY THIS IS false (not a string) so why does it think this is true?
{
myvartxt = "ON";
}
else
{
myvartxt = "OFF";
}
var y=document.getElementById("demo1");
y.innerHTML=myvartxt;
}
</script>
</body>
</html>
您正在使用new Boolean()
创建一个新对象;JavaScript中的对象评估为CCD_ 7。
我认为,如果去掉new
关键字并将Boolean()
简单地用作函数,您将看到更符合预期的行为。
代码if (myvar)
是错误的,它只是检查是否设置了myvar
。你必须更改报表
if (myvar.toString() == true)
首先,jQuery
这可以这样重写:
// Perform logic when document is set and ready.
$(document).ready(function() {
var myvar = false; // No need for Boolean objects.
$("demo").html(myvar.toString()); // Set the value of demo.
myvar ? $("demo1").html("ON") : $("demo1").html("OFF"); // True/false ON/OFF in demo1
}
此外,JavaScript对平等测试来说很糟糕,看看这里,如果你有机会,请阅读本文。
相关文章:
- 快速排序程序未正确输出
- 为什么我的输出未定义
- 它无法正常工作,它输出未定义
- Vue.js 使用 Vuex 和自定义组件,@click方法输出未定义
- 带有Ajax的JavaScript和HTTP请求输出未定义的显示2
- 对象实例为其输出“未定义”'s原型'的属性.为什么?
- Karma runner控制台-仅输出未通过测试
- XMLHttpRequest输出未显示
- 输出未定义
- Rails javascript_tag输出未执行
- FileReader输出未定义
- XML分支:输出未转义的文本
- Js输出未排序数组
- 使用数组.Push输出未定义
- 从函数调用返回对象的函数输出未定义
- js部分/子模板输出未定义
- Angular UI掩码格式化输出未定义
- jsPdf输出未定义
- 对变量的访问输出未定义
- 为什么输出未定义