return은 함수 자체를 중단시키는데 비해 break 명령문이 실행되면 블록 문장에서 빠져나와 다음 작업을 시작한다.
즉 return과 break의 차이는 어디까지 빠져나가느냐가 된다.
return : 함수 탈출. 해당 함수(메서드) 자체에서 빠져나감.
break : 루프 탈출. for, switch, while문 등 함수 내의 반복문에서 빠져나감.
반복문을 종료 시키기도 하지만 값을 반환하고 함수 자체를 종료!
함수에서 사용하지 않으면 에러가 발생
⇒ 함수는 return을 사용하지 않아도 항상 값을 반환함 (기본값은 undefined)
const number = () => {
for (let i = 0; i < 10; i++ ) {
if(i===5) {
return i;
}
console.log(i)
}
}
console.log('종료')
number()
// 0 , 1 , 2 , 3 , 4 , 종료
반복문을 더 이상 진행하지 않아도 될 때 불필요한 반복을 회피할 수 있다.
레이블문(식별자가 붙은 문), 반복문(for, for...in, for...of, while, do...while), switch문의 코드 블록 탈출
=> 그 외에 break문을 사용하면 SyntaxError(문법 에러) 발생
if(true) {
break; //SyntaxError
}
중첩된 for문 외부로 탈출할 때 유용하다.
(그 외는 권장X)
foo: {
console.log(1);
break foo; //foo 레이블 블록문을 탈출.
console.log(2);
}
outer : for (lse i = 0; i < 3; i++) {
for (let i = 0; i < 3; i++) {
if (i + j === 3) break outer;
}
}
예) 문자열에서 해당 문자가 처음 있는 인덱스 찾기
const string = 'Hello World'
let index;
for(let i = 0; i < string.length; i++) {
if(string[i] === 'l') {
index = i;
break;
}
}
// 2