大家好,欢迎来到IT知识分享网。
前面我们在比较运算符中提到过,比较运算符通常会在条件语句中使用,那么JS的条件语句究竟是什么呢?这篇文章我们将一起来学习JS中的条件语句
条件语句是指在满足特定条件后,才会执行的语句,所以在条件语句中我们通常会搭配比较运算符来使用。在JS中,条件语句包括if语句、if…else语句、if…else if … else语句、switch语句,注意,条件语句的if else switch都是小写,写成If Else Switch是会报错的。
一、if语句
单独的if语句表示只有在特定情况下才会执行的语句(程序分支),否则就会往下执行
分支和主程序都成功输出
只输出了主程序
if语句的写法
主程序
…
if(条件语句){
条件为true时执行的代码
…
}
主程序
…
注意
1、小括号()内的条件语句的返回值一定是Boolean类型
2、一般情况下,小括号()内的条件语句必须是比较运算,除非在判断一个对象是否存在某个属性等特定情况下
判断obj对象是否存在a和b属性
因为只存在obj.a属性,所以只输出了obj.a属性
3、如果对象的某个属性是null、undefined、NaN(not a nulber,Number数据类型),那么以对象.属性作为条件语句,返回的将是false,也就是说如果对象的属性的值是null、undefined、NaN的时候,我们是没办法通过条件语句执行特定代码的,例如
obj对象存在b属性,但是b属性的值是null
即使obj存在b属性,也不会执行满足条件的代码
这个时候,肯定有聪明的同学想到了
我想执行obj.b情况下的代码怎么办呢?
大家可以一起讨论下,如何才能在这种情况下,执行obj.b条件的代码。
4、条件语句是代码块,在里面用let和const方式声明的变量只在该代码块中有效,外部是无法获取里面的声明的变量的(这个我们讲作用域的时候会详细讲解),用var声明变量,外部依然可以获取
我们分别在条件语句和主程序中打印a和b
内部正常打印,外部报错了
在条件语句内部用var声明变量b
居然能正常获取
二、if…else语句
相较于if语句,if…else语句除了满足条件执行的代码块之外,多了一个else的代码块,表示如果满足条件,就执行if代码块,否则就执行else代码块。
满足了if条件,所以执行了if代码块
没有满足if条件,所以执行了else代码块
if…else语句实际上是一个Y型路口,程序必须要选择往一边执行,例如我们判断一个人的性别,如果是男性就执行男性的代码块,如果是女性,就执行女性的代码块等等情况
三、if..else if …else语句
if..else if …else语句适用于多条件判断,通常会和与&&、或||、非!语句搭配使用
a>=10为真,所以执行a>=10的代码块
注意:
if..else if …else语句只会执行一个条件代码块,也就是说如果你的条件语句有多个true,则只会执行第一个为true的代码块,后面为true的代码块不会被执行,因此if..else if …else语句一定要确保所有条件语句只有一个为true,否则会产生不可预知的错误
条件一和条件二同时为true
只执行了条件1的代码块
四、switch语句
switch语句相较于if语句,更适用于多条件判断,也就是说switch语句和if..else if …else语句是类似的
小括号内是需要进行判断的变量,case后面是变量需要满足的值,:后面是变量满足case的值后要执行的代码块,break是关键字,不能省略,default后面表示不满足上面所有case的值需要执行的代码。
注意:
1、switch语句只能用于确定值的判断,例如今天是星期几,因为星期几只可能在1-7中产生,不会出现今天是星期大于一的情况,所以适用于switch语句
2、case后面的值必须是确定的值,不能出现比较运算
3、switch语句可以没有default
4、switch语句适用于确定范围、确定值的判断
5、相较于if..else if …else语句,switch语句更加清晰,但适用性没有if..else if …else语句广泛
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/89517.html