TIL_18_with Wecode 008 JavaScript about function

JIEUNΒ·2021λ…„ 2μ›” 20일
0
post-thumbnail

🐬 return ν•¨μˆ˜ μ •μ˜

  • returnμ΄λΌλŠ” 것은 ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν–ˆμ„ λ•Œ, ν•¨μˆ˜κ°€ 값을 λ°˜ν™˜ν•œλ‹€λŠ” λœ»μž…λ‹ˆλ‹€.

μ˜ˆμ‹œ)

    function multiplyTen(myNumber) {
      return 10 * myNumber;
    }

πŸ‘» μΈμžκ°€ ν•˜λ‚˜μΈ multiplyTen ν•¨μˆ˜μ˜ μ •μ˜ β†’ 받은 μΈμžμ— 10을 κ³±ν•˜μ—¬ λ°˜ν™˜ν•œ 것.

🐬 return ν•¨μˆ˜μ˜ 호좜
μ˜ˆμ‹œ)

    multiplyTen(3); 
    multiplyTen(6); 
    multiplyTen(12);  

πŸ‘» μœ„μ™€ 같이 μ—¬λŸ¬λ²ˆ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€.

🐬 return ν•¨μˆ˜μ˜ 호좜 κ²°κ³Ό 확인

  • ν˜ΈμΆœμ€ ν–ˆμ§€λ§Œ, μ–΄λ–€ 값을 λ¦¬ν„΄ν–ˆλŠ”μ§€ μ•ŒκΈΈμ΄ μ—†μŠ΅λ‹ˆλ‹€. 호좜된 ν•¨μˆ˜μ˜ return 값을 λ³€μˆ˜μ— μ €μž₯ν•˜λŠ” μˆ˜λ°–μ—!
  • μ•„λž˜μ™€ 같이 ν•¨μˆ˜μ˜ λ°˜ν™˜μ„ λ³€μˆ˜μ— μ €μž₯ν•΄μ„œ console둜 확인해볼 수 μžˆμŠ΅λ‹ˆλ‹€.
    let result1 = multiplyTen(3); 
    let result2 = multiplyTen(6); 
    let result3 = multiplyTen(12);  
    console.log(result1); 
    console.log(result2); 
    console.log(result3);

🐬 ν•¨μˆ˜μ™€ return ν‚€μ›Œλ“œ

  • 사싀 ν•¨μˆ˜λŠ” λͺ¨λ‘ return을 ν•©λ‹ˆλ‹€.
  • '음.. μ•„λ‹Œλ°' ν•˜κ³  생각이 λ“œμ…¨μ„ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. λΆ„λͺ… return이 μ—†λŠ” ν•¨μˆ˜λ₯Ό 보신 적이 μžˆμ„ν…Œλ‹ˆκΉŒμš”.
  • κ·Έ κ²½μš°μ—λ„ returnμ΄λΌλŠ” ν‚€μ›Œλ“œλ₯Ό μƒλž΅ν–ˆμ„ 뿐 ν•¨μˆ˜λŠ” 리턴을 ν•©λ‹ˆλ‹€.
  • return을 μƒλž΅ν•˜λ©΄ ν•¨μˆ˜λŠ” undefinedλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
      function consoleSuccess(month, name) {   
      console.log(month, name); 
    }  
    let result = consoleSuccess("30", "양지은");
    // ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•œ κ²°κ³Όλ₯Ό λ³€μˆ˜ result에 λ‹΄μ•„μ„œ 
    console.log("consoleSuccess 호좜 값은" + result); 
    //κ²°κ³ΌλŠ” "3 양지은". "consoleSuccess 호좜 값은 undefined"
function getTax(price) {
  return price * 0.1;
}
function calculateTotal(price) {
  return price + getTax(price);
}
var result = calculateTotal(3500);
  console.log(result);
  • μ΄λ ‡κ²Œ ν•¨μˆ˜ μ•ˆμ—μ„œ 또 ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.
  • calculateTotal ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ getTaxλ₯Ό 또 ν˜ΈμΆœν–ˆμŠ΅λ‹ˆλ‹€.
  • ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜λŠ” μ‹œμ μ€ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λŠ” μˆœκ°„μ΄κ² μ£ ?
  • μ™Όμͺ½μ˜ μ½”λ“œλ₯Ό 보면 2~8번 쀄 κΉŒμ§€λŠ” "이런 ν•¨μˆ˜κ°€ μžˆλ‹€.."κ³  μ„ μ–Έν•΄μ€€ 것 λΏμž…λ‹ˆλ‹€.
  • ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜λŠ” μ‹œμ μ€ λ°”λ‘œ 10번째 μ€„μ—μ„œ calculateTotal(3500) 으둜 호좜 ν–ˆμ„ λ•Œ μž…λ‹ˆλ‹€.

πŸ‘» Assignment
getTotal ν•¨μˆ˜λ₯Ό λ§Œλ“€μ–΄μ£Όμ„Έμš”! getTotal ν•¨μˆ˜λŠ” 가격을 2개 λ°›μ•„μ„œ calculateTotal 호좜 λ°˜ν™˜κ°’μ„ λ”ν•΄μ„œ λ¦¬ν„΄ν•˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€.

    1. getTotal μ΄λΌλŠ” μ΄λ¦„μ˜ ν•¨μˆ˜λ₯Ό λ§Œλ“€μ–΄μ£Όμ„Έμš”. 가격정보 2개λ₯Ό 인자둜 λ°›μŠ΅λ‹ˆλ‹€.
    1. μΈμžμ΄λ¦„μ€ μ›ν•˜λŠ”λŒ€λ‘œ 지어주셔도 λ©λ‹ˆλ‹€.
    1. getTotal ν•¨μˆ˜μ—μ„œ 인자둜 받은 κ°€κ²©μœΌλ‘œ 각각 calculateTotal ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•΄μ£Όμ„Έμš”. 그리고 κ·Έ 결과값을 λ”ν•΄μ„œ λ°˜ν™˜ν•΄μ£Όμ„Έμš”.

μ°Έκ³ )

  • getTax ν•¨μˆ˜λŠ” κ°€κ²©μ˜ taxλ₯Ό κ΅¬ν•˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€.
  • calculateTotal ν•¨μˆ˜λŠ” μƒν’ˆμ˜ 가격에 taxλ₯Ό λ”ν•œ 값을 κ΅¬ν•˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€.
  • getTotal ν•¨μˆ˜λŠ” 두 μƒν’ˆμ˜ 가격을 λ”ν•΄μ„œ λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€.

λ‚΄κ°€ μ²˜μŒμ— μ“΄ λ‹΅λ³€

function getTax(price) {
  return price * 0.1;
}
function calculateTotal(price) {
  return price + getTax(price);
}  
function getTotal(price1, price2) {
  return price1 + price2;}
getTotal(1000,3000);
calculateTotal(1000);
calculateTotal(3000);

κ²°κ³ΌλŠ”
Expected: 440
Received: 400 으둜 값이 λ§žμ§€ μ•ŠλŠ”λ‹€.
사싀 3번 "getTotal ν•¨μˆ˜μ—μ„œ 인자둜 받은 κ°€κ²©μœΌλ‘œ 각각 calculateTotal ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•΄μ£Όμ„Έμš”. 그리고 κ·Έ 결과값을 λ”ν•΄μ„œ λ°˜ν™˜ν•΄μ£Όμ„Έμš”." λΌλŠ” λ¬Έμž₯을 μ œλŒ€λ‘œ μ΄ν•΄ν•˜μ§€ λͺ»ν•œ 것 κ°™λ‹€.
인자둜 받은 가격 1000, 3000원 각각 calculateTotal ν•¨μˆ˜μ— λ„£μ–΄ ν˜ΈμΆœν–ˆλŠ”λ° 결과값을 λ”ν•΄μ„œ λ°˜ν™˜ν•˜λΌλŠ”κ²Œ μ •ν™•νžˆ λ­” 말인지 이해가 μ•ˆκ°„λ‹€.. λ‚΄κ°€ μ΄λ ‡κ²Œ λ§₯λ½λ§Ήμ΄μ—ˆλ˜κ°€..
ꡬ글링을 해봐야겠닀.

ꡬ글링 κ²°κ³Ό)

function getTax(price) {
  return price * 0.1;
} //μ„ΈκΈˆμ„ κ΅¬ν•˜λŠ” ν•¨μˆ˜.
function calculateTotal(price) {
  return price + getTax(price);
} //μƒν’ˆμ˜ 가격과 μ„ΈκΈˆμ„ λ”ν•œ 값을 κ΅¬ν•˜λŠ” ν•¨μˆ˜.
function getTotal(price1, price2){
  return calculateTotal(price1) + calculateTotal(price2) 
} //λ‘κ°œμ˜ 인자λ₯Ό λ°›μ•„ 두 μƒν’ˆμ˜ 가격을 λ”ν•˜λŠ” ν•¨μˆ˜.
getTotal(1000,3000);

μ•„ μ—­μ‹œ 3번 λ§ˆμ§€λ§‰ λ¬Έμž₯을 λ‚΄κ°€ μ΄ν•΄ν•˜μ§€ λͺ»ν•œ κ±°μ˜€λ‹€.
getTotal ν•¨μˆ˜ 내뢀에 calculateTotal ν•¨μˆ˜λ₯Ό μž…λ ₯ν•˜κ³  인자 price1κ³Ό price2λ₯Ό μž…λ ₯ν•˜μ—¬ λ”ν•΄μ„œ λ°˜ν™˜ν•˜λΌλŠ” 것 μ΄μ—ˆλ‹€..

function getTax(price)λΌλŠ” μ„ΈκΈˆμ„ λΆ™μ΄λŠ” ν•¨μˆ˜λ₯Ό μ •μ˜ν•˜κ³ , function calculateTotal(price)λΌλŠ” ν•¨μˆ˜μ— μ„ΈκΈˆμ„ λΆ™μ΄λŠ” ν•¨μˆ˜λ₯Ό calculateTotal ν•¨μˆ˜ 내뢀에 ν˜ΈμΆœν–ˆλ‹€.
그러면 이제 calculateTotal(price) ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ 두 개의 인자λ₯Ό λ”ν•΄μ£ΌκΈ°λ§Œ ν•˜λ©΄ 우린 두 개의 인자λ₯Ό λ°›μœΌλ©΄μ„œ μ„ΈκΈˆμ΄ 더해진 값도 ꡬ할 수 있게 λ˜λŠ”κ±°λ‹€.

λ‚΄κ°€ μ²˜μŒμ— μž‘μ„±ν•œ μ½”λ“œλ₯Ό 보면

function getTotal(price1, price2) {
  return price1 + price2;
}

μ΄λ ‡κ²Œ 리턴을 해버리면 μ„ΈκΈˆμ΄ 뢙지 μ•Šμ€ κ°€κ²©κ°’λ§Œ λ”ν•΄μ Έμ„œ λ‚˜μ˜€κ²Œ 되기 λ•Œλ¬Έμ— fail인 것이닀.

0개의 λŒ“κΈ€