break-continue-return循环总结

跳出循环的三种方法(break-return-continue)

break-return-continue

1.break

MDN: breakexpress

  • 定义
    break 语句停止当前循环,switch 语句或 label 语句,并把程序控制流转到紧接着被停止语句后面的语句。bash

  • 语法函数

    break [label];ui

    label
     可选。与语句标签相关联的标识符。若是 break 语句不在一个循环或 switch 语句中,则该项是必须的。spa

2.return

MDN: returncode

  • 定义
    return 语句终止函数的执行,并返回一个指定的值给函数调用者。ip

  • 语法get

    return [[expression]];string

    expression
     表达式的值会被返回。若是忽略,则返回 undefined。it

3.continue

MDN: continue

  • 定义
    continue 语句结束当前(或标签)的循环语句的本次迭代,并继续执行循环的下一次迭代。

  • 语法

    continue [ label];

    label
     标识标号关联的语句

1. for

function execute() {
  var arr = [1, 2, 3],
    i = 0,
    len = arr.length;

  for (; i < len; i++) {
    // if (i === 1) [statement];
    console.log(`key: ${i} \nvalue: ${arr[i]}`);
  }
  console.log('execute');
}

var result = execute();
console.log(result);

复制代码
statement 结果 说明
break key: 0
value: 1
execute
undefined
跳出循环
continue key: 0
value: 1
key: 2
value: 3
execute
undefined
跳出当前执行,执行下次循环
return key: 0
value: 1
undefined
跳出函数

2. while

function execute() {
  var num = 0;

  while (num <= 3) {
    num++;
    // if (num === 1) [statement];
    console.log(num);
  }
  console.log('execute');
}
var result = execute();
console.log(result);
复制代码
statement 结果 说明
break execute
undefined
跳出循环
continue 2
3
4
execute
undefined
跳出当前执行,执行下次循环
return undefined 跳出函数

3. do-while 循环

function execute() {
  var num = 3;
  do {
    num--;
    if (num === 1) break;
    console.log(num);
  } while (num >= 0)

  console.log('execute');
}
var result = execute();
console.log(result);
复制代码
statement 结果 说明
break 2
execute
undefined
跳出循环
continue 2
0
-1
execute
undefined
跳出当前执行,执行下次循环
return 2
undefined
跳出函数

4. for-in

function execute() {
  var obj = {a: 1, b:2, c: 3};

  for(let key in obj) {
    // if(obj[key] === 1) [statement];
    console.log(obj[key]);
  }
  console.log('execute');
}
var result = execute();
console.log(result);
复制代码
statement 结果 说明
break execute
undefined
跳出循环
continue 2
3
execute
undefined
跳出当前执行,执行下次循环
return undefined 跳出函数

5. for-of

function execute() {
  var arr = [1, 2, 3];

  for(let value in arr) {
    // if(value === 1) [statement];
    console.log(value);
  }
  console.log('execute');
}
var result = execute();
console.log(result);
复制代码
statement 结果 说明
break execute
undefined
跳出循环
continue 2
3
execute
undefined
跳出当前执行,执行下次循环
return undefined 跳出函数

6.map

function execute() {
  var arr = [1, 2, 3];

  var result  = arr.map(v=> {
    // if(v === 1) [statement];
    console.log(v);
  })
  console.log(result);
  console.log('execute');
}
var result = execute();
console.log(result);
复制代码
statement 结果 说明
break SyntaxError: Illegal break statement map 中不容许使用 break
continue Illegal continue statement: no surrounding iteration statement map 中不容许使用 continue
return 'result' 2
3
['result', undefined, undefined]
execute
undefined
保持 map 的返回值,执行下次循环

7.forEach

function execute() {
  var arr = [1, 2, 3];

  var result  = arr.forEach(v=> {
    // if(v === 1) [statement];
    console.log(v);
  })
  console.log(result);
  console.log('execute');
}
var result = execute();
console.log(result);
复制代码
statement 结果 说明
break SyntaxError: Illegal break statement forEach 中不容许使用 break
continue Illegal continue statement: no surrounding iteration statement forEach 中不容许使用 continue
return 'result' 2
3
undefined
execute
undefined
forEach 自己无返回值,这里无效果,执行下次循环

8.every

function execute() {
  var arr = [1, 2, 3];

  var result  = arr.every(v=> {
    if(v === 1) [statement];
    console.log(v);
  })
  console.log(result);
  console.log('execute');
}
var result = execute();
console.log(result);
复制代码
statement 结果 说明
break SyntaxError: Illegal break statement every 中不容许使用 break
continue Illegal continue statement: no surrounding iteration statement every 中不容许使用 continue
return 'result' 2
false
execute
undefined
every 数据中存在不知足 v === 1 的数据,则返回 false, return 后执行下次循环

9.some

function execute() {
  var arr = [1, 2, 3];

  var result  = arr.some(v=> {
    if(v === 1) [statement];
    console.log(v);
  })
  console.log(result);
  console.log('execute');
}
var result = execute();
console.log(result);
复制代码
statement 结果 说明
break SyntaxError: Illegal break statement some 中不容许使用 break
continue Illegal continue statement: no surrounding iteration statement some 中不容许使用 continue
return 'result' true
execute
undefined
some 数据中只要存在知足 v === 1 的数据,则返回 true, 这里 return 后跳出循环

10.filter

function execute() {
  var arr = [1, 2, 3];

  var result  = arr.filter(v=> {
    if(v === 1) [statement];
    console.log(v);
  })
  console.log(result);
  console.log('execute');
}
var result = execute();
console.log(result);
复制代码
statement 结果 说明
break SyntaxError: Illegal break statement filter 中不容许使用 break
continue Illegal continue statement: no surrounding iteration statement filter 中不容许使用 continue
return 'result' 2
3
[1]
execute
undefined
filter 筛选知足条件的数据, 这里 return 后跳出当前执行,执行下次循环

11. reduce

function execute() {
  var arr = [1, 2, 3];

  var result  = arr.reduce((prev, cur)=> {
    if(prev === 1) return 'result';
    console.log(prev, cur);
  })
  console.log(result);
  console.log('execute');
}
var result = execute();
console.log(result);
复制代码
statement 结果 说明
break SyntaxError: Illegal break statement reduce 中不容许使用 break
continue Illegal continue statement: no surrounding iteration statement reduce 中不容许使用 continue
return 'result' result 3
undefined
execute
undefined
reduce prev 表明前一个返回值, 这里 return 后跳出当前执行, 执行下次循环
相关文章
相关标签/搜索