8、JavaScript 条件判断

JavaScript使用if () { ... } else { ... }来进行条件判断。例如,根据年龄显示不同内容,可以用if语句实现如下:

  1. var age = 20;
  2. if (age >= 18) { // 如果age >= 18为true,则执行if语句块
  3. alert('adult');
  4. else { // 否则执行else语句块
  5. alert('teenager');
  6. }

 

其中else语句是可选的。如果语句块只包含一条语句,那么可以省略{}

  1. var age = 20;
  2. if (age >= 18)
  3. alert('adult');
  4. else
  5. alert('teenager');

 

省略{}的危险之处在于,如果后来想添加一些语句,却忘了写{},就改变了if...else...的语义,例如:

  1. var age = 20;
  2. if (age >= 18)
  3. alert('adult');
  4. else
  5. console.log('age < 18'); // 添加一行日志
  6. alert('teenager'); // <- 这行语句已经不在else的控制范围了

上述代码的else子句实际上只负责执行console.log('age < 18');,原有的alert('teenager');已经不属于if...else...的控制范围了,它每次都会执行。

 

相反地,有{}的语句就不会出错:

  1. var age = 20;
  2. if (age &gt;= 18) {
  3. alert('adult');
  4. else {
  5. console.log('age &lt; 18');
  6. alert('teenager');
  7. }

这就是为什么我们建议永远都要写上{}

 

多行条件判断

如果还要更细致地判断条件,可以使用多个if...else...的组合:

  1. var age = 3;
  2. if (age &gt;= 18) {
  3. alert('adult');
  4. else if (age &gt;= 6) {
  5. alert('teenager');
  6. else {
  7. alert('kid');
  8. }

 

上述多个if...else...的组合实际上相当于两层if...else...

  1. var age = 3;
  2. if (age &gt;= 18) {
  3. alert('adult');
  4. else {
  5. if (age &gt;= 6) {
  6. alert('teenager');
  7. else {
  8. alert('kid');
  9. }
  10. }

但是我们通常把else if连写在一起,来增加可读性。这里的else略掉了{}是没有问题的,因为它只包含一个if语句。注意最后一个单独的else不要略掉{}

 

JavaScript 条件判断

请注意,if...else...语句的执行特点是二选一,在多个if...else...语句中,如果某个条件成立,则后续就不再继续判断了。

付杰
  • ¥ 498.0元
  • 市场价:498.0元
  • ¥ 99.0元
  • 市场价:199.0元
  • ¥ 58元
  • 市场价:58元
  • ¥ 79.0元
  • 市场价:99.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: