๐คฆโ๏ธ
jQuery each() ํจ์๋ฅผ ๊ณต๋ถํ๋ค๊ฐ return false; ๊ฐ breaking ์๋จ์ ์์๋ค.(eachํจ์์์์ ์กฐ๊ฑด๋ฌธ์ ๋ง์กฑํ๋ฉด break ๊ฐ ๋์ผ ํ๋๋ฐ ์๋จ.) ์ฐพ์๋ณด๋ฉด์ return๊ณผ break์ ํ์คํ ๊ฐ๋ ๋ค์ง๊ธฐ๊ฐ ํ์ํ๊ณ , ํ์ each()๋ฅผ ํ์คํ return false ํ ์ ์๋ ๋ฐฉ๋ฒ์ ์์๋ณด์๋ค.
return / break > return / return true / return false > $.each() return false ํ๋ ๋ฐฉ๋ฒ
์์ผ๋ก ์ ๋ฆฌํด๋ณผ ์์ ์ด๋ค.
[javaScript] return / break
1. return
- ํจ์ ์คํ์ ์ข ๋ฃํ๊ณ , ์ฃผ์ด์ง ๊ฐ์ ํจ์ ํธ์ถ ์ง์ ์ผ๋ก ๋ฐํํ๋ค.
function getRectArea(width, height) {
if(width > 0 && height > 0) {
return width * height;
}
return 0;
}
console.log(getRectArea(3, 4));
// 12
console.log(getRectArea(-3,4));
// 0
1-1. ๊ตฌ๋ฌธ
return [[expression]]
expression
: ๋ฐํํ ๊ฐ์ผ๋ก ์ฌ์ฉํ ํํ์. ์๋ตํ ๊ฒฝ์ฐ undefined
๋ฅผ ๋์ ๋ฐํํ๋ค.
1-2. ์ค๋ช
ํจ์ ๋ณธ๋ฌธ์ return
๋ช
๋ น๋ฌธ์ ๋๋ฌํ๋ฉด ํจ์์ ์คํ์ ๊ทธ ์ง์ ์์ ์ค์ง๋๋ค.
๊ฐ์ ์ ๊ณตํ ๊ฒฝ์ฐ, ํจ์๋ฅผ ํธ์ถํ ๊ณณ์์ ๊ทธ ๊ฐ์ ๋ฐํํ๋ค.
// ์ซ์ ๋งค๊ฐ๋ณ์ `x`์ ์ ๊ณฑ์ ๋ฐํํ๋ ์์ ์ด๋ค.
function square(x) {
return x * x;
}
var demo = square(3);
// demo๋ 9
๋ค์ return
๋ช
๋ น๋ฌธ ๋ชจ๋ ํจ์ ์คํ์ ๋๋๋ค.
๊ฐ์ ๋ฐํํ๊ฑฐ๋ ํจ์ ์คํ์ ์ค์ง์ํจ๋ค
return;
return true;
return false;
return x;
return x + y / 3;
1-3. ์์
-
ํจ์์ค๋จ
- ํจ์๋
return
์ ํธ์ถํ๋ ์ง์ ์์ ์ฆ์ ์คํ์ ๋ฉ์ถ๋ค.
function counter() { for(var count = 1; count++) { // ๋ฌดํ๋ฐ๋ณต console.log(count + 'A'); // 1 2 3 4 5 if(count === 5) { return; // ๋ฉ์ถค. } // (1) count === 5 END console.log(count + 'B'); // 1 2 3 4 } // (2) for() END console.log(count + 'C'); // for๋ฌธ ๋๋ฌ์ผ๋ฏ๋ก ์ ๋ ๋ํ๋์ง ์๋๋ค. } // (3) counter() END counter(); // 1A // 1B // 2A // 2B // 3A // 3B // 4A // 4B // 5A
- ํจ์๋
2. break
break
๋ฌธ์ ํ์ฌ ๋ฐ๋ณต๋ฌธ, switch
๋ฌธ, label
๋ฌธ์ ์ข
๋ฃํ๊ณ , ๊ทธ ๋ค์ ๋ฌธ์ผ๋ก ํ๋ก๊ทธ๋จ ์ ์ด๋ฅผ ๋๊ธด๋ค.
let i = 0;
while(i < 6) {
if(i === 3) {
break;
}
console.log(i); // 0 1 2
i++;
console.log(i); // 1 2 3
}
console.log(i); // 3
2-1. ๊ตฌ๋ฌธ
break [label];
label
: ๋ฌธ์ ๋ผ๋ฒจ์ ์ฐ๊ฒฐํ ์๋ณ์. ๋ฐ๋ณต๋ฌธ์ด๋ swich ์์ ์ฌ์ฉํ๋๊ฒ ์๋๋ฉด ํ์๋ก ์ ๊ณตํด์ผ ํ๋ค.
2-2. ์ค๋ช
break
๋ฌธ์ ํ๋ก๊ทธ๋จ์ด label ๋ฌ๋ฆฐ ๋ฌธ์์ ๋น ์ ธ๋์ค๊ฒ ํ๋ ์ ํ์ฌํญ label์ ํฌํจํ๋ค. break
๋ฌธ์ ์ฐธ์กฐ๋๋ label ๋ด์ ์ค์ฒฉ๋์ด์ผ ํ๋ค. label ๋ฌ๋ฆฐ ๋ฌธ์ ์ด๋ค block
๋ฌธ์ด๋ ๋ ์ ์๋ค. ๊ผญ loop๋ฌธ์ ๋ฌ ํ์๋ ์๋ค.
2-3. ์์
- ๋ค์ ํจ์๋ i๊ฐ 3์ผ ๋,
while
loop๋ฅผ ์ข ๋ฃํ๋ break๋ฌธ์ด ์๊ณ ,3*x
๊ฐ์ ๋ฐํํ๋ค.
function testBreak(x) {
var i = 0;
while(i < 6) {
if(i === 3) {
break;
}
i++;
console.log(i); // 123
}
console.log(i); // 3
return i * x; // 3 * 4
}
testBreak(4);
-
๋ค์ ์ฝ๋๋ label ๋ฌ๋ฆฐ ๋ธ๋ก์ด ์๋
break
๋ฌธ์ ์ฌ์ฉํ๋ค.break
๋ฌธ์ ์์ ์ด ์ฐธ์กฐํ๋ label ๋ด์ ์ค์ฒฉ๋์ด์ผ ํ๋ค.inner_block
์outer_block
๋ด์ ์ค์ฒฉ๋์ด์ผ ํจ์ ์ฃผ์ํ์.outer_block: { inner_block: { console.log('1'); break outer_block; // inner_block๊ณผ outer_block ๋๋ค ๋น ์ ธ๋์ด. console.log('2'); // ๊ฑด๋๋. } console.log('3'); // ๊ฑด๋๋. }
-
๋ค์ ์ฝ๋๋ label ๋ฌ๋ฆฐ ๋ธ๋ก๋ฌธ์
break ๋ฌธ
์ ์ฌ์ฉํ ์์ ๋ก, break๋ฌธ์ดblock_2
๋ฅผ ์ฐธ์กฐํ์ง๋งblock_1
๋ด์ ์๊ธฐ์ ๊ตฌ๋ฌธ ์ค๋ฅ(Syntax Error)๊ฐ ๋ฐ์ํ๋ค.break๋ฌธ
์ ํญ์ ์์ ์ด ์ฐธ์กฐํ๋ label๋ด์ ์ค์ฒฉ๋์ด์ผ ํ๋ค.block_1: { console.log('1'); break block_2; // SyntaxError : label์ ์ฐพ์ ์ ์์. } block_2: { console.log('2'); }
- label์ ๋ํ ๋ด์ฉ
https://keichee.tistory.com/141
3. return ๊ณผ break ์ฐจ์ด
๋ง์ฝ ํจ์ ์์ ์์ฑ๋ ๋ฃจํ ์์ break
๊ฐ ์ฐ์๋ค๋ฉด, break
๋ฅผ ๊ฐ์ธ๊ณ ์๋ ๋ฃจํ๋ฅผ ๋น ์ ธ ๋๊ฐ๊ณ ํจ์ ๋ฐ์ผ๋ก ๋๊ฐ์ง ์๋๋ค.
return
์ ํจ์ ์คํ์ ์ข
๋ฃํ๊ณ ํจ์๋ฅผ ํธ์ถํ ๊ณณ์ผ๋ก ์คํ ํ๋ฆ์ ์ฎ๊ธด๋ค.
return
= ํจ์ ํ์ถ
- ํจ์ ๋ด๋ถ์ ๊ฐ์ ํจ์ ์ธ๋ถ๋ก ์ถ๋ ฅ์ํค๋ ๊ธฐ๋ฅ.
- ํจ์๋ฅผ ๊ฐ์ ๋ก ์ข ๋ฃ์ํค๋ ๊ธฐ๋ฅ. ํจ์ ์์ ์ฐ์ด๋ฉด ํจ์ ์คํ์ ์ข ๋ฃ์ํค๊ณ , ๊ทธ ํจ์๋ฅผ ํธ์ถํ๋ ์ง์ ์ผ๋ก ๋์๊ฐ ๊ณ์ ์คํํ๋ค.
break
= ๋ฃจํ ํ์ถ
- for, switch, while ๋ฑ ์ฌ๋ฌ๋ฒ ๋ฐ๋ณต๋๋ ๋ฃจํ์ ๊ฒฝ์ฐ, ํด๋น ๋ฃจํธ์์ ๋น ์ ธ๋๊ฐ๋ค.
๐ฅ ์ค์! ๐ฅ
์ด ๋, return ๊ณผ ๊ตฌ๋ถ๋๋ ์ฐจ์ด๋ ์ด๋์ ๋น ์ ธ๋๊ฐ๋๋์ด๋ค.
return์ ๊ฒฝ์ฐ, ํด๋น ๋ฉ์๋(ํจ์) ์์ฒด์์ ๋น ์ ธ๋๊ฐ๊ณ , break๋ ํจ์ ์์ฒด์์ ๋น ์ ธ๋๊ฐ๋ ๊ฒ์ด ์๋๋ผ ํจ์ ์์ ์ฐ์ธ ๋ฃจํ๋ฌธ์์๋ง ๋น ์ ธ๋๊ฐ๋ค๋ ์ฐจ์ด์ ์ด ์๋ค.
Reference
JavaScript์์ return๊ณผ break์ ์ฐจ์ด
'๐ฉ๐ปโ๐ปSTUDY > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript / ES6] let, const์ ๋ธ๋ก ๋ ๋ฒจ ์ค์ฝํ (0) | 2021.02.11 |
---|---|
[JavaScript] Call By Value (0) | 2021.01.29 |
[JavaScript] JavaScript ์ฝ์ ๋ฐฉ์๊ณผ ์์น (0) | 2020.09.24 |
[JavaScript] ๋ฌธ์์ ๋ก๋์์ - onload / DOMContentLoaded (0) | 2020.09.24 |
[JavaScript] ์ค์ผ์ค๋ง setTimeout ๊ณผ setInterval (0) | 2020.04.10 |