天天看点

有关return、return false、break、continue 用法详解

return false、break、continue 这三种语句是我们写代码中经常遇到的语句,有时不清楚它们的用途场景很容易弄混乱,今天我收集这些语句的详细用法。

return

函数中的return 语句既是指函数调用的的返回值,这里是return语句的语法:

return expression      

return 语句只能在函数体内出现,如果不是的话将会报语法错误。当执行到return 语句的时候,函数将终止执行,并返回expression 的指给调用程序。如果没有return 语句,则函数调用仅一次执行函数体内的每一条语句直到函数结束,最后返回调用程序,这种情况,调用表达式的结果是undefined. return 语句可以单独使用而不必带有epression,这样的话函数也会调用程序返回undefined.

function test () {
  console.log('hello')
  return 'lanfeng'
  console.log('front')
}
test();      

执行结果

有关return、return false、break、continue 用法详解

说明 return 语句执行后的代码没有再执行

return false

return false 语句可以用来阻止默认事件行为、阻止向上冒泡、阻止代码继续执行等。

function test () {
  var arrnew = []
  var arr = [1,2,3,4,5]

  for(var i = 0; i < arr.length; i++) {
    console.log(arrnew)
    if(arr[i] > 3) { // 当arr[i]大于3的时候,跳出test函数
      return false;
    }
    arrnew.push(arr[i])
  }
  console.log(arrnew) //代码不执行
}
test();      

运行效果如下:

有关return、return false、break、continue 用法详解

break

单独使用break语句的作用是立即退出最内层的循环或switch语句,语法如下:

break;      

break一般只出现在循环或者switch语句中,在循环中,不论出于什么原因,只要不想继续执行整个循环,就可以用break退出

function test () {
  var arrnew = []
  var arr = [1,2,3,4,5]
  for(var i = 0; i < arr.length; i++) {
    
    if(arr[i] > 3) { // 当arr[i]大于3的时候,跳出循环
      break 
    }
    arrnew.push(arr[i])
  }
  console.log(arrnew)
}
test();      

运行效果如下:

有关return、return false、break、continue 用法详解

break 语句同样可用于可选的标签引用,用于跳出代码块。

continue

continue 语句和break 语句非常相似,但它不是退出循环,而是执行下一次循环,continue语句的语法和break语句语法一样简单:

continue;      

continue 语句同样可以带有标签:

continue  labelname;      

不管continue语句带不带标签,它只能在循环体内使用。 当执行continue语句时,当前执行的循环逻辑就终止了,随即执行下一次循环,在不同的类型的循环中,continue的行为也有所区别:

  • 在while循环中,在循环开始处指定的expression会重复检测,如果检测结果为true,循环会从头开始执行。
  • 在do/while循环中,程序的执行直接跳到循环结尾处,这时候会重新判断循环条件,之后才会执行下一次循环
  • 在for循环中,首先计算自增表达式,然后再次检测表达式,用以判断是否执行循环体
  • 在for/in 循环中,循环开始遍历下一个属性名,这个属性名赋给了指定的变量

    需要注意: continue语句在while和for循环中的区别, while循环直接进入下一轮的循环条件判断,但for循环首先计算其increment表达式,然后判断循环条件。

function test () {
  var arrnew = []
  var arr = [1,2,3,4,5]

  for(var i = 0; i < arr.length; i++) {
    if(arr[i] === 3) { //如果arr[i]等于3,终止这次逻辑,继续下一个循环逻辑
      continue;
    }
    arrnew.push(arr[i])
  }
  console.log(arrnew)
}
test();      

继续阅读