Day 09 流程控制

在JavaScript中,想要控制流程,就要设计流程中的条件。

条件判断 if...else

望文生义,这是一个**「如果...就...否则」**的条件判断式。

以下方的巢状判断式举例,我们宣告了年龄(age)及公民权(citizen)两个变数,并给出了条件判断如下:

  • 若年龄大於等於20,且拥有公民权,则「可以投票」。
  • 否则「不能投票」。
var age = 22
var citizen = true

if (age >= 20) {
	if (citizen == true) {
		console.log("可以投票")
	} else {
		console.log("不能投票")
	}
} else {
  console.log("不能投票")
}

其中的第二个if,本身也是写成第二个 else if 条件判断,可以视需要增加(不建议太多),令所有条件(if 与 else if)满足时方为 true,否则(else)就是flase(执行 else 的结果)。

这组判断式可以用「&&」再简化为:

var age = 22
var citizen = false

if (age >= 20 && citizen) { //若年满20且为公民
	console.log("可以投票")
} else {
  console.log("不能投票")
}

条件判断 switch

健身环不错玩(大误)

此承前述,在「同值、多分支运算」的条件判断中,若条件很多,就可能不断增加 else if,平添程序维护的问难。举例来说:

let plan = "C";

if (plan === "A"){
    console.log("进行A计画");
} else if (plan === "B"){
    console.log("进行B计画");
} else if (plan === "C"){
    console.log("进行C计画");
} else {
    console.log("计画取消");
} //结果印出「进行B计画」

此处使用switch语法,无须重写重复的陈述句。其具体流程是:

  1. 执行开头的陈述句。
  2. 若条件(值)满足,执行第一个plan。
  3. 若不满足,执行下一个plan,直到最後的default为止。

具体上,前例可以改写如下:

let plan = "C";

switch(plan){
    plan "A":
        console.log("进行A计画");
        break;
    plan "B":
        console.log("进行B计画");
        break;
    plan "C":
        console.log("进行C计画");
        break;
    default:
        console.log("计画取消");
        break;
} //结果印出「进行B计画」

必须注意的是,switch语法不像if,执行完毕後不会结束。一定要以「break」语法中止switch的运作

if (temp <= 7) { 
	console.log("酷寒");
} 
else if (temp > 8 && temp < 12) {
  console.log("寒冷");
}
else if (temp > 13 && temp < 32) {
  console.log("宜人");
}
else if (temp > 33 && temp < 35) {
  console.log("炎热");
}
else if (temp >= 36) {
  console.log("酷热");
}
else {
  console.log("温度错误");
}

三元运算子

除了以上两种条件判断外,还可运用功能相近的三元运算子。其结构由条件、问号、冒号所组成:

(条件) ? [值/式子A] : [值/式子B]

承上例,仅作选举权年龄判断时,以if else可以写成:

if (age >= 20) {
	status = "可以投票";
} else {
	status = "不能投票";
}

若写成三元运算子,则是:

let status = (age >= 20) ? "可以投票" : "不能投票";

如此这般,程序码变得简洁易看。


<<:  子查询在MySQL中是怎麽执行的

>>:  Day 09 Summary

Day19,ArgoCD ( 2 / 2 )

正文 今天要来Demo ArgoCD上透过Gitlab的SSO与权限控管 先创建一个namespac...

【Day 17】分散式资料库 High Availability 初探

对於分散式资料库的高可用性, 在前面【Day 3】分散式系统模型、容错、高可用的後段已经提过衡量的标...

Day30 - 云端 Study Lab 总结,清除 GCP 专案

Study Lab 总结 在这 30 天中介绍了许多 DevOps 的工具以及工作流程,若读者想要学...

33岁转职者的前端笔记-DAY 20 Javascript 基本知识笔记

写Javascript前必要小知识 1.<!DOCTYPE html> 为 HTML 5...

Day14 - 做一半的产品编辑 modal

今天回顾六角的课程范例,重做一遍产品编辑 modal ,但目前只做了一半 <template&...