条件语句 Java脚本:if、else、else if

Java脚本条件语句
条件语句主要有三种类型 JavaScript.
- if 语句:'if' 语句根据条件执行代码。
- if...else 语句:if…else 语句由两个代码块组成;当条件为真时,执行第一个代码块,当条件为假时,执行第二个代码块。
- if…else if…else 语句:当需要测试多个条件并且需要根据哪个条件为真执行不同的代码块时,使用 if...else if...else 语句。
下面将逐一分析这三种形式,包括它们的语法和一个可运行的示例。无论脚本位于何处,规则都相同。 在页面内部或外部文件中以及该条件是写在顶层还是写在内部。 function.
如何使用条件语句
条件语句用于根据不同的条件决定执行流程。如果条件为真,则可以执行一个操作;如果条件为假,则可以执行另一个操作。
下图将这个想法比作岔路口:一个条件只评估一次,控制流向真分支或假分支,绝不会同时流向两者。
如果声明
语法:
if(condition) { lines of code to be executed if condition is true }
您可以使用 if 如果您只想检查特定条件,请使用此语句。当括号内的表达式求值为真时, true代码块运行;当其计算结果为 false解释器直接跳过它,脚本继续执行下一条语句。
自己尝试一下:
<html>
<head>
<title>IF Statments!!!</title>
<script type="text/javascript">
var age = prompt("Please enter your age");
if(age>=18)
document.write("You are an adult <br />");
if(age<18)
document.write("You are NOT an adult <br />");
</script>
</head>
<body>
</body>
</html>
该示例会询问访问者的年龄,然后对该值进行两次测试:一次测试 18 岁及以上,一次测试 18 岁以下。因为两次测试分别针对 18 岁及以上和 18 岁以下。 if 使用的是语句而不是 else每次页面加载时都会评估这两个条件。
现代对应词: 以上代码与已发布版本完全一致。目前 Java脚本中通常使用相同的逻辑编写。 let or const 而不是 var, console.log() or textContent 而不是 document.write(),并且没有 type="text/javascript" 该属性在 HTML5 中变为可选。
如果…否则语句
语法:
if(condition) { lines of code to be executed if the condition is true } else { lines of code to be executed if the condition is false }
您可以使用 if...else 如果你需要检查一个条件,并针对每个结果执行不同的代码块,那么可以使用以下语句。这两个代码块中总会有一个执行,因此不需要单独的第二次测试。
自己尝试一下:
<html>
<head>
<title>If...Else Statments!!!</title>
<script type="text/javascript">
// Get the current hours
var hours = new Date().getHours();
if(hours<12)
document.write("Good Morning!!!<br />");
else
document.write("Good Afternoon!!!<br />");
</script>
</head>
<body>
</body>
</html>
服务 new Date().getHours() 返回浏览器时钟的当前小时数,数值范围为 0 到 23。小于 12 的值会显示早安问候语,其他所有值都会被忽略。 else 科。
如果…否则 如果…否则语句
语法:
if(condition1) { lines of code to be executed if condition1 is true } else if(condition2) { lines of code to be executed if condition2 is true } else { lines of code to be executed if condition1 is false and condition2 is false }
您可以使用 if...else if...else 如果你想检查两个以上的条件,可以使用语句。条件会从上到下依次评估,执行会在第一个为真的条件处停止,最后一个条件则继续执行。 else 当没有一个选项匹配时,它可以作为总选项。
自己尝试一下:
<html>
<head>
<script type="text/javascript">
var one = prompt("Enter the first number");
var two = prompt("Enter the second number");
one = parseInt(one);
two = parseInt(two);
if (one == two)
document.write(one + " is equal to " + two + ".");
else if (one<two)
document.write(one + " is less than " + two + ".");
else
document.write(one + " is greater than " + two + ".");
</script>
</head>
<body>
</body>
</html>
注意两次调用 parseInt()返回的值 prompt() 它们是字符串,因此如果不进行转换就进行比较,将会比较文本而不是数字,并将“9”报告为大于“10”。
三元 Operator:if…else 的简写
当 if...else 块只能在两个值之间进行选择,条件(三元)运算符用单个表达式表达相同的决策。它是唯一一个 Java脚本运算符,接受三个操作数:条件、问号、条件为真时使用的值、冒号和条件为假时使用的值。
// if...else form let message; if (age >= 18) { message = "adult"; } else { message = "minor"; } // same decision as a ternary expression let label = age >= 18 ? "adult" : "minor";
当三元运算符能够提高代码可读性时,请使用它,而不仅仅是为了节省行数:
- 非常适合: 从两个值中选择一个来赋值、返回或丢弃到模板字符串中。
- 不合适: 执行多个语句、调用函数产生副作用或需要自己的局部变量的分支。
- 避免嵌套: 三元运算符嵌套三元运算符比一个三元运算符更难阅读。
else if链。
switch语句 vs if…else if…else
很久了 else if 将同一变量与不同的固定值进行比较的链式结构通常更清晰易懂。 switch 语句。该 switch 语句会对其表达式进行一次求值,然后跳转到匹配的语句。 case; break 阻止执行进入下一个案例,并且 default 扮演最终角色 else.
switch (day) { case "Sat": case "Sun": document.write("Weekend"); break; default: document.write("Weekday"); }
这两种结构并非在所有情况下都可以互换:
| 比较点 | 如果……否则如果……否则 | 开关 |
|---|---|---|
| 测试类型 | 任何布尔表达式,包括范围,例如 hours<12 |
仅与固定值相等 |
| 比较方法 | 无论你写什么运算符 | 严格比较,所以 "5" 不匹配 5 |
| 可读性 | 最适合几种互不相关的疾病 | 最适合用于多个同一变量的值 |
| 常见错误 | 忘记尾随 else |
忘记 break这样一来,执行就会失败。 |
真值与假值 Java脚本条件
条件不一定非得是比较关系。 Java脚本会先将括号内的所有内容转换为布尔值,这就是为什么 if (name) 这是有效代码。只有六个值会转换为 false: false, 0空字符串 null, undefined和 NaN其他一切都是真值,包括字符串 "0"一个空数组和一个空对象。
大多数初学者脚本中的条件语句错误都源于以下几种常见错误:
- 赋值而非比较:
if (x = 5)赋值且始终为真;if (x === 5)比较。 - 宽松的平等政策带来的意外:
==在比较之前转换类型,因此"" == 0属实。更喜欢===. - 牙套缺失: 也完全不需要
{}只有下一个单独的语句属于该分支,与上面的示例完全一样。 - 未转换的输入: 值来自
prompt()表单字段直到……都是字符串parseInt()orNumber()将它们转换。 - 无法访问的分支: 的
else if如果采用链式检验,则应将最严格的条件放在首位,否则更宽泛的早期检验总是会胜出。

