λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
JAVASCRIPT

ν•¨μˆ˜

by _토맀토 2022. 7. 26.
728x90

μžλ°”μŠ€ν¬λ¦½νŠΈ ν•¨μˆ˜

ν”„λ‘œκ·Έλž¨μ—μ„œ 반볡적으둜 μ‚¬μš©λ˜λŠ” κΈ°λŠ₯을 λ§Œλ“€μ–΄ λ‚΄κΈ° μœ„ν•œ μ½”λ“œλ“€μ˜ μ§‘ν•©μœΌλ‘œ μ΄ν•΄ν•˜λ©΄ λœλ‹€.


01. 선언적 ν•¨μˆ˜

선언적 ν•¨μˆ˜λŠ” κ°€μž₯ 일반적인 ν˜•μ‹μ˜ ν•¨μˆ˜λ‘œ ν•¨μˆ˜λ₯Ό μ„ μ–Έν•  λ•Œ 이름을 λΆ™μ—¬μ€€λ‹€.

function func(){
     document.write("μ‹€ν–‰λ¬Έ");
}
func();

{
    function func(){
        document.write("ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.1")
        //write = λΈŒλΌμš°μ €κ°μ²΄μ΄μž λ©”μ†Œλ“œμ΄λ‹€
    }
    func();
}
결과 보기
ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.1

02. 읡λͺ… ν•¨μˆ˜

ν•¨μˆ˜λͺ… λŒ€μ‹  λ³€μˆ˜λͺ…에 ν•¨μˆ˜μ½”λ“œλ₯Ό μ €μž₯ν•˜λŠ” 방식이닀.
즉 ν•¨μˆ˜λͺ…에 이름을 μ§€μ •ν•˜μ§€ μ•ŠλŠ”λ‹€. λŒ€μ‹  λ³€μˆ˜λͺ…을 지정해쀀닀.

const func(){
     document.write("μ‹€ν–‰λ¬Έ");
}
func();

{
    const func = function(){      //ν•¨μˆ˜ μ•ˆμ— 이름이 μ—†μ–΄μ„œ 읡λͺ…ν•¨μˆ˜ 이닀.
        document.write("ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.2");
    }
    func();
}
결과 보기
ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.2

03. λ§€κ°œλ³€μˆ˜ ν•¨μˆ˜

ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜(parameter)λž€ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•  λ•Œ 인수둜 μ „λ‹¬λœ 값을 ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ μ‚¬μš©ν•  수 있게 ν•΄μ£ΌλŠ” λ³€μˆ˜μ΄λ‹€.
μ΄λ•Œ ν•¨μˆ˜μ˜ 인수(argument)λž€ ν•¨μˆ˜κ°€ 호좜될 λ•Œ ν•¨μˆ˜λ‘œ 값을 μ „λ‹¬ν•΄μ£ΌλŠ” λ³€μˆ˜λ₯Ό 가리킨닀.

{
    function func(str){     //str = λ³€μˆ˜ = 인자 = λ§€κ°œλ³€μˆ˜
        document.write(str);
    }
    func("ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.3"); // funcμ•ˆμ— λ³€μˆ˜λͺ…을 지정할 수 μžˆλ‹€.
}
결과 보기
ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.3

04. 리턴값(return) ν•¨μˆ˜

ν•¨μˆ˜κ°€ μ–΄λ– ν•œ κΈ°λŠ₯을 μˆ˜ν–‰ν•˜κ³  κ·Έ κ²°κ³Όλ₯Ό ν˜ΈμΆœν•œ 곳으둜 λŒλ €μ£ΌλŠ” 값을 리턴값이라고 ν•œλ‹€.
λ˜ν•œ 좜λ ₯ λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³  좜λ ₯ν•˜κΈ° μœ„ν•΄μ„œλŠ” 리턴값 ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•΄μ£Όλ©΄ λœλ‹€.

{
    function func(){
        const str = "ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.4"
        return str;
    }
    document.write(func());
    //객체둜 데이터λ₯Ό μ €μž₯ν•˜λŠ” 방법 쀑 객체 속에 ν•¨μˆ˜λ‘œ ν‘œν˜„ν•˜λŠ” 방법과 같은 λ§₯락이닀.
    //λ‹€λ₯Έ μ‹μ—μ„œλ„ 리턴은 거의 μƒλž΅ν•œλ‹€. λ¦¬μ•‘νŠΈμ—μ„œλŠ” 보톡 λ¦¬ν„΄κΉŒμ§€ μ‚¬μš©ν•˜μ—¬ μž…λ ₯ν•œλ‹€.
}
결과 보기
ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.4

05. ν™”μ‚΄ν‘œ ν•¨μˆ˜ (선언적 ν•¨μˆ˜)

ECMAscript6(es6)에 μΆ”κ°€λœ λ‚΄μš©μœΌλ‘œ " =>"λ₯Ό μ΄μš©ν•˜μ—¬ ν•¨μˆ˜λ₯Ό κ°„κ²°ν•˜κ²Œ ν‘œν˜„ν•  λ•Œ μ‚¬μš©ν•œλ‹€.
function ν‚€μ›Œλ“œλ₯Ό μƒλž΅ν•  수 있으며 항상 읡λͺ… ν•¨μˆ˜ ν˜•μ‹μœΌλ‘œ ν‘œν˜„ν•΄μ•Ό ν•œλ‹€. μ΄λ•Œ 단일 λͺ…령문이라면 ν•¨μˆ˜μ˜ μ€‘κ΄„ν˜Έ {}와 return의 μƒλž΅μ΄ κ°€λŠ₯ν•˜λ‹€.

{
//ν™”μ‚΄ν‘œ ν•¨μˆ˜(선언적 ν•¨μˆ˜) κΈ°λ³Έν‘œν˜„
func = () => {
document.write("ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.5");
}
func();

//ν™”μ‚΄ν‘œ ν•¨μˆ˜(선언적 ν•¨μˆ˜) ν•œμ€„ ν‘œν˜„
func = () => document.write("ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.5"); //{}κ°€ μƒλž΅λ˜μ–΄λ„ μ½λŠ”λ‹€.

func();
}
결과 보기
ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.5

자투리 지식 : ECMAscript6(es6)의 λ¬Έλ²•μ—λŠ” ν™”μ‚΄ν‘œ ν•¨μˆ˜, let, constκ°€ μžˆλ‹€.


06. ν™”μ‚΄ν‘œ ν•¨μˆ˜ (읡λͺ… ν•¨μˆ˜)

ν™”μ‚΄ν‘œ ν•¨μˆ˜μ—μ„œ 읡λͺ… ν•¨μˆ˜λŠ” constλ₯Ό μ‚¬μš©ν•˜μ—¬ ν‘œν˜„ν•΄μ•Ό ν•œλ‹€.

{
//ν™”μ‚΄ν‘œ ν•¨μˆ˜ 읡λͺ…ν•¨μˆ˜ κΈ°λ³Έ ν‘œν˜„
const func = () => {
document.write("ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.6");
}

//ν™”μ‚΄ν‘œ ν•¨μˆ˜ 읡λͺ…ν•¨μˆ˜ 단일 ν‘œν˜„
const func = () =>  document.write("ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.6");

func();
}
결과 보기
ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.6

07. ν™”μ‚΄ν‘œ ν•¨μˆ˜ (λ§€κ°œλ³€μˆ˜ ν•¨μˆ˜)

ν™”μ‚΄ν‘œ ν•¨μˆ˜μ—μ„œ λ³€μˆ˜ 선언을 ν•΄μ£Όμ–΄μ•Ό ν•˜μ§€λ§Œ μƒλž΅μ΄ κ°€λŠ₯ν•˜λ‹€.

{
//ν™”μ‚΄ν‘œ ν•¨μˆ˜ 읡λͺ…ν•¨μˆ˜ κΈ°λ³Έ ν‘œν˜„
const func = (str) => {
    document.write("ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.6");
}

//ν™”μ‚΄ν‘œ ν•¨μˆ˜ 읡λͺ…ν•¨μˆ˜ 단일 ν‘œν˜„
const func = (str) =>  document.write("ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.7");

func();
}
결과 보기
ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.7

08. ν™”μ‚΄ν‘œ ν•¨μˆ˜ (리턴값 ν•¨μˆ˜)

{
func = () => {
    const str = "ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.8";
    return str;
}
document.write(func());
}
결과 보기
ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.8
728x90

'JAVASCRIPT' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

μš”μ†Œ 선택  (3) 2022.08.07
μ§€μ—­ν•¨μˆ˜μ™€ μ „μ—­ν•¨μˆ˜  (2) 2022.07.29
데이터 νƒ€μž…  (3) 2022.07.26
쑰건문  (3) 2022.07.26
반볡문  (12) 2022.07.21

λŒ“κΈ€


Lucky Charms Rainbow
js
html
css