非常基本的 JavaScript,使用 || 检查条件(或)
Really basic javascript, checking a condition using || (or)
我对JavaScript很陌生,并且试图使用 lynda.com 来学习。
我目前正在玩 if 语句。
有问题的代码:
var value = prompt("1 or 2?");
if ( value == 1 ) {
alert("You have chosen 1.");
}
if ( value == 2 ) {
alert("You have chosen 2.");
}
if ( value != (1 || 2) ) {
alert("Invalid number. Try again.");
}
这就是我想要发生的:如果数字不是 1 或 2,我希望 JS 执行这段代码:
if ( value != (1 || 2) ) {
alert("Invalid number. Try again.");
}
显然这不是写出来的正确方法,我尝试过用各种不同的方式写它。有人可以告诉我正确的方法,可能使用 else 语句吗?
if ( value != 1 && value != 2) {
alert("Invalid number. Try again.");
}
如果你写value != (1||2)
,(1||2)
将首先被评估为1
,然后与value
进行比较,所以你有效地写了:
if ( value != 1 ) { [...] }.
这是因为()
的偏好高于!=
。您还可以阅读有关操作员首选项的解释,其中提供了更多详细信息。
1
if ( value != 1 && value !=2 ) {
alert("Invalid number. Try again.");
}
阿拉伯数字
if ( !(value == 1 || value ==2) ) {
alert("Invalid number. Try again.");
}
3
if ( value == 1 ) {
alert("You have chosen 1.");
}
else if ( value == 2 ) {
alert("You have chosen 2.");
}
else {
alert("Invalid number. Try again.");
}
编写此语句的最佳方法如下:
if ( value == 1 )
{
alert("1");
}
else if ( value == 2 )
{
alert("2");
}
else
{
alert("no 1 or 2");
}
您搞砸的 if 语句是 (1 || 2(将发生的情况是它将进行布尔测试并返回 1。它应该看起来像这样
if ( value !== 1 && value !== 2 )
{
alert("no 1 or 2");
}
谢谢
如前所述,最好是分成两个 NOT 语句,并同时评估:
if ( value != 1 && value != 2) ) {
alert("Invalid number. Try again.");
}
但是,您也可以使用 if
、 else if
else
模式来覆盖所有其他输入(字母、标点符号、空格等(。 else
在最后起到了包罗万象的作用:
var value = prompt("1 or 2?");
if ( value == 1 ) {
alert("You have chosen 1.");
}
else if ( value == 2 ) {
alert("You have chosen 2.");
}
else {
alert("Invalid number. Try again.");
}
内联语句,例如: (1 || 2)
仅在左侧为假 y 时才计算||
的右侧。所以你的陈述实际上是在说:
if ( value != 1 )
因为1
计算结果为真。
正如大多数人所指出的,您真正想做的是:
if ( value != 1 && value != 2 )
逻辑不正确。你必须以这种方式做
if ( value != 1 && value != 2) ) {
alert("Invalid number. Try again.");
}
(1||2)
语句被评估为1
因此您正在测试是否value != 1
尝试过写作
if(value != 1 && value != 2)
你必须这样做
if ( value != 1 && value != 2 ) {
alert("Invalid number. Try again.");
}
或
if (!(value == 1 || value == 2)) {
alert("Invalid number. Try again.");
}
您可以按如下方式使用 switch
switch(value) {
case 1:
alert("You have chosen 1.");
break;
case 2:
alert("You have chosen 2.");
break;
default:
alert("Invalid number. Try again.");
}
你的问题在这里:
if ( value != (1 || 2) )
他们正在做的是检查"值"是否不等于(1或2(,其中(1或2(首先被评估,因为它在括号中。(1 或 2( 的计算结果为 1,因为 1 在 JavaScript 中是真实的。您的代码实际执行的操作是检查您的值是否不等于 1。
您真正要做的是检查您的值是否为 !=1 并且您的值是否为 !=2。你这样做是这样的:
if (value !=1 && value !=2) { /* do something */ }
你不需要子句。 您可以只使用:
else{
}
- 如何获取jQuery Confirm(jConfirm)值并使用该值检查条件
- 如何在angularjs中更改文本框类,同时键入和检查条件
- 每次调用函数后都要检查条件
- for循环在javascript中循环一次后不检查条件
- 网格视图中的Checbox检查条件无法按JavaScript的要求工作
- JavaScript - 是否有必要先检查条件
- 检查条件后如何在JavaScript中转到下一页
- 检查条件后转到给定的网址
- 如何使用ASCII值在JavaScript中检查条件
- 非常基本的 JavaScript,使用 || 检查条件(或)
- 表单验证在检查条件后未发出警报
- 继续检查条件是否成立
- 在加载时,如何以数组的形式检查条件中的多个值
- 如何在以编程方式在 JavaScript 中提交表单之前检查条件
- javascript中检查条件的奇怪行为
- 使& # 39;dom-if& # 39;根据另一个元素中的属性检查条件
- Angular ng-show不会连续检查条件
- Javascript在span标签的情况下没有正确检查条件
- 如何在Javascript函数中检查条件
- 检查条件后使用jQuery取消复选框