TIL 37 | JavaScript Repl.it Assignment 01

Saemsol Yooยท2021๋…„ 1์›” 14์ผ
0

javascript

๋ชฉ๋ก ๋ณด๊ธฐ
23/25
post-thumbnail

1. Introduction to JavaScript

keyword : console.log

Console์— "I love WeCode!" ๋ฅผ ์ถœ๋ ฅํ•ด์ฃผ์„ธ์š”.

๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ (Model Solution๊ณผ ๋™์ผ) โœ…

console.log("I love WeCode!")  //์ฝ˜์†”๋กœ๊ทธ๋ฅผ ์ด์šฉํ•ด ์ถœ๋ ฅํ•œ๋‹ค.

์ถœ๋ ฅ๊ฒฐ๊ณผ




2. ์ฃผ์„

keyword : /* */ //

index.js์— ์žˆ๋Š” ignore() ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋„๋ก ์ฃผ์„์„ ํ’€์–ด ์ฃผ์„ธ์š”.

๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ (Model Solution๊ณผ ๋™์ผ) โœ…

function ignore() {
  return true;
}

ignore();

/* (์ฐธ๊ณ )
์—ฌ๋Ÿฌ
์ค„
์ฃผ์„
*/

//ํ•œ ์ค„ ์ฃผ์„




3. Variables (๋ณ€์ˆ˜)

keyword : const

  • index.js์—ย variablesย ๋ผ๋Š” ํ•จ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ทธ ์•ˆ์— myAge๋ผ๋Š” ๋ณ€์ˆ˜๊ฐ€ ์ด๋ฏธ ์„ ์–ธ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • yourAge๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์ƒˆ๋กญ๊ฒŒ ์„ ์–ธํ•˜๊ณ  ๋‚˜์ด๋ฅผ ํ• ๋‹นํ•ด์ฃผ์„ธ์š”.
  • myAge์™€ yourAge ๋ณ€์ˆ˜์˜ ํ•ฉ์ด 50์ด ๋  ์ˆ˜ ์žˆ๋„๋ก yourAge์˜ ๊ฐ’์„ ์ •ํ•ด์ฃผ์„ธ์š”.

๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ (Model Solution๊ณผ ๋™์ผ) โœ…

function variables() {
  // ๋‹ค์Œ ์ฝ”๋“œ๋Š” ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์ง€์šฐ์ง€ ๋งˆ์„ธ์š”
  const myAge = 21;
  
  // ์•„๋ž˜์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ์ฃผ์„ธ์š”
  const yourAge = 29;

  // ๋‹ค์Œ ์ฝ”๋“œ๋Š” ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์ง€์šฐ์ง€ ๋งˆ์„ธ์š”
  return myAge + yourAge;
}

์ถœ๋ ฅ๊ฒฐ๊ณผ




4. Function - ๊ธฐ๋ณธ

keyword : return / function()

์•„๋ž˜์˜ ์„ค๋ช…์„ ๋“ฃ๊ณ  ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

  • ํ•จ์ˆ˜ ์ด๋ฆ„์€ checkYear๋กœ ํ•ด์ฃผ์„ธ์š”.
  • ์˜ฌํ•ด ๋…„๋„๋ฅผ returnํ•ฉ๋‹ˆ๋‹ค.
  • ๋…„๋„๋ฅผ ์ž‘์„ฑํ•  ๋•Œ๋Š” ""(์Œ๋”ฐ์˜ดํ‘œ)์—†์ด ์ˆซ์ž๋งŒ 4์ž๋ฆฌ ์จ์ฃผ์„ธ์š”.

๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ (Model Solution๊ณผ ๋™์ผ) โœ…

function checkYear() {
  // ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š” 
  const thisYear = 2021;    //2021๋…„ ์˜ฌํ•ด ๋…„๋„๋ฅผ thisYear์— ํ• ๋‹น์‹œํ‚ค๊ณ 

  return thisYear;          //2021์ด ํ• ๋‹น๋œ thisYear๋ฅผ return!
} 

checkYear();

์ถœ๋ ฅ๊ฒฐ๊ณผ




5. Function - ๋ฐ์ดํ„ฐ ๋ฐ˜ํ™˜ํ•˜๊ธฐ(1)

keyword : parameter(๋งค๊ฐœ๋ณ€์ˆ˜) / argument(์ธ์ž) / return

์•„๋ž˜์˜ ์„ค๋ช…์„ ๋“ฃ๊ณ  ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

  • ํ•จ์ˆ˜ ์ด๋ฆ„์€ addTen ์ž…๋‹ˆ๋‹ค.
  • ๋ฐ›์€ parameter์— 10์„ ๋”ํ•ด์„œ ๋ฐ˜ํ™˜(return)ํ•ด์ฃผ์„ธ์š”.

๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ (Model Solution๊ณผ ๋™์ผ) โœ…

function addTen(num) {
  return num+10;   //parameter๋กœ ๋“ค์–ด์˜จ num์—๋‹ค๊ฐ€ 10์„ ๋”ํ•ด์„œ ๋ฆฌํ„ด!
}

์ถœ๋ ฅ๊ฒฐ๊ณผ




6. Math Expressions

keyword : num++ / ++num / num-- / --num ๐Ÿšจ ์•ž ๋’ค์— ๋”ฐ๋ผ ํ• ๋‹น๊ณผ ์—…๋ฐ์ดํŠธ ์ˆœ์„œ ๋‹ค๋ฅด๋‹ค!

index.js์— ์ž‘์„ฑ ๋˜์–ด ์žˆ๋Š” mathExpression ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ ๊ฐ’์ด 22๊ฐ€ ๋‚˜์˜ค๋„๋ก ์ˆ˜์ •ํ•ด ์ฃผ์„ธ์š”.

๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ

//๋ฌธ์ œ
function mathExpression() {
  // ๋‹ค์Œ ์ฝ”๋“œ์˜ ๊ฐ’์ด 22๊ฐ€ ๋˜๋„๋ก ์ˆ˜์ •ํ•ด์ฃผ์„ธ์š”.
  let result = 5 + 6 * 10 / 2 * 2.5 ;
  
  // ๋‹ค์Œ ์ฝ”๋“œ๋Š” ์ˆ˜์ •ํ•˜์ง€ ๋งˆ์„ธ์š”!
  return result;
}

//์ •๋‹ต
function mathExpression() {
  let result = (5 + 6) * (10 / (2 * 2.5)) ;   //์ˆ˜ํ•™์ฒ˜๋Ÿผ ๊ด„ํ˜ธ์•ˆ์„ ๋จผ์ € ์—ฐ์‚ฐํ•œ๋‹ค.

  return result;
}

Model Solution

  • ๋‚ด ์ฝ”๋“œ์™€์˜ ์ฐจ์ด์ 
  • ๋‚˜๋ž‘ ๋ฌถ์–ด์ค€ ๋ฐฉ๋ฒ•์ด ๋‹ค๋ฅด๋‹ค!
function mathExpression() {
  result = ((5 + 6) * 10) / (2 * 2.5)

  return result
}

์ถœ๋ ฅ๊ฒฐ๊ณผ




7. ํ…์ŠคํŠธ ๋ฌธ์ž์—ด์˜ ์—ฐ๊ฒฐ

keyword : "text" + "text" + ๋ณ€์ˆ˜ / "string" + number = "string"

  • index.js์— textConcatenation ํ•จ์ˆ˜๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ์„œ ๋‹ค์Œ ๋ฌธ์žฅ์ด ๋ฆฌํ„ด ๋  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ์„ธ์š”.
    โ†’ "2 ๋”ํ•˜๊ธฐ 2๋Š” 4"

๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ (Model Solution๊ณผ ๋™์ผ) โœ…

function textConcatenation() {

  let text = "2 ๋”ํ•˜๊ธฐ 2๋Š” " + (2 + 2);  
  // (2 + 2)๋ฅผ ๊ด„ํ˜ธ๋กœ ๋ฌถ์–ด์ฃผ์ง€ ์•Š์œผ๋ฉด ์ปดํ“จํ„ฐ๋Š” ์™ผ์ชฝ๋ถ€ํ„ฐ ๊ณ„์‚ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์—
  // "string"์— ์ˆซ์ž 2๋ฅผ ๋”ํ•˜๋ฉด string์ด ๋œ๋‹ค. ๋˜ 2๋ฅผ ๋”ํ•˜๋ฉด string์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์—
  // ๊ฒฐ๊ณผ๋Š” "2 ๋”ํ•˜๊ธฐ 2๋Š”22" ๊ฐ€ ๋˜์–ด๋ฒ„๋ฆฐ๋‹ค!๐Ÿ’ฅ
  
  return text;
}

์ถœ๋ ฅ๊ฒฐ๊ณผ




8. if๋ฌธ

keyword : if / else if / else

myFavoriteColor ํ•จ์ˆ˜๋Š” "์ƒ‰๊น”"์„ ์ธ์ž๋กœ ๋ฐ›๊ณ  3๊ฐ€์ง€ ๊ฒฐ๊ณผ ๊ฐ’์„ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.
if๋ฌธ์„ ์‚ฌ์šฉํ•ด ๋‹ค์Œ ์กฐ๊ฑด์— ๋งž๊ฒŒ ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ ํ•ด์ฃผ์„ธ์š”.

  • color ๊ฐ€ "navy" ์ด๋ฉด "Good!" ๋ฆฌํ„ด
  • color ๊ฐ€ "yellow" ์ด๋ฉด "Bad!" ๋ฆฌํ„ด
  • ๊ทธ ์™ธ์˜ ๊ฒฝ์šฐ "Whatever!" ๋ฆฌํ„ด

๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ

function myFavoriteColor(color) {     //color์— ์ธ์ž๊ฐ€ ์ „๋‹ฌ๋˜๋ฉด,
 if (color === "navy") {              //color๊ฐ€ "navy" ๋ผ๋ฉด
   return "Good!";                    //"Good!" ๋ฐ˜ํ™˜!
 } else if (color === "yellow") {
   return "Bad!";
 } else {                             //"navy" ๋„ ์•„๋‹ˆ๊ณ  "yellow" ๋„ ์•„๋‹ˆ๋ฉด
   return "Whatever!";                //"Whatever!" ๋ฐ˜ํ™˜!
 }
}

Model Solution

  • ๋‚ด ์ฝ”๋“œ์™€์˜ ์ฐจ์ด์ 
  • solution์€ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๊ณ  ๊ทธ ๋ณ€์ˆ˜๋ฅผ returnํ–ˆ๊ณ , ๋‚˜๋Š” ๊ทธ ๊ฐ’์„ ํ•œ๋ฒˆ์— return์‹œ์ผฐ๋‹ค.
function myFavoriteColor(color) {
  var result = ""                  //๋จผ์ € ๋นˆ ๋ฌธ์ž์—ด์„ result์— ํ• ๋‹น
  
  if (color === "navy") {
    result = "Good!";              //๊ฐ ์กฐ๊ฑด๋งˆ๋‹ค ํ•ด๋‹นํ•˜๋Š” ๊ฒฐ๊ณผ๊ฐ’์„ ์žฌํ• ๋‹น
  } else if (color === "yellow") {
    result = "Bad!";
  } else {
    result = "Whatever!";
  }
  
  return result;                   //์กฐ๊ฑด๋ฌธ์—์„œ ๋น ์ ธ๋‚˜์˜จ ํ›„ ์ตœ์ข… result๋ฅผ ๋ฐ˜ํ™˜!
}

์ถœ๋ ฅ๊ฒฐ๊ณผ




9. ๋น„๊ต์—ฐ์‚ฐ์ž

keyword : === (equality operator) / == (equality operator) / !==

์šฐ๋ฆฌ๋‚˜๋ผ๋Š” 20์‚ด ๋ถ€ํ„ฐ ์ˆ ์„ ๋งˆ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋‚˜๋ผ ์‚ฌ๋žŒ๋“ค์ด ๊ฐ€์žฅ ์ฆ๊ฒจ๋งˆ์‹œ๋Š” ์ˆ ์€ ์†Œ์ฃผ ์ž…๋‹ˆ๋‹ค.
canIDrinkSoju ํ•จ์ˆ˜ ์•ˆ์— ๋น„๊ต ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ์˜ ๊ฒฝ์šฐ๋“ค์ด ๊ตฌํ˜„๋  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ์„ธ์š”.

  • age ๊ฐ€ 20์‚ด ๋ณด๋‹ค ์–ด๋ฆฌ๋ฉด: "์• ์•ผ ๊ฐ€์„œ ๊ณต๋ถ€๋‚˜ ํ•ด๋ผ!" ๋ฆฌํ„ด
  • age ๊ฐ€ 50์‚ด ์ด์ƒ์ด๋ฉด: "๊ฑด๊ฐ•์„ ์œ„ํ•ด์„œ ์ˆ ์€ ์ ๋‹นํžˆ ๋งˆ์‹œ์„ธ์š”!" ๋ฆฌํ„ด
  • ๊ทธ ์™ธ์˜ ๊ฒฝ์šฐ์—๋Š”: "์†Œ์ฃผ์—๋Š” ๊ณฑ์ฐฝ ์–ด๋– ์‹ ๊ฐ€์š”?" ๋ฆฌํ„ด

๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ

function canIDringkSoju(age) {
  if (age < 20) {                              //๋‚˜์ด๊ฐ€ 20๋ณด๋‹ค ์ž‘์œผ๋ฉด
    return "์–˜์•ผ ๊ฐ€์„œ ๊ณต๋ถ€๋‚˜ ํ•ด๋ผ!"
  } else if (age >= 50) {                      //๋‚˜์ด๊ฐ€ 50๋ณด๋‹ค ๊ฐ™๊ฑฐ๋‚˜ ํฌ๋ฉด
      return "๊ฑด๊ฐ•์„ ์œ„ํ•ด์„œ ์ˆ ์€ ์ ๋‹นํžˆ ๋งˆ์‹œ์„ธ์š”!"
    } else {                                   //๊ทธ ์™ธ ๋‚˜๋จธ์ง€ (= 20๋ณด๋‹ค ๊ฐ™๊ฑฐ๋‚˜ ํฌ๊ณ , 50๋ณด๋‹ค ์ž‘์€)
	return "์†Œ์ฃผ์—๋Š” ๊ณฑ์ฐฝ ์–ด๋– ์‹ ๊ฐ€์š”?"
      }
}

Model Solution

  • ๋‚ด ์ฝ”๋“œ์™€์˜ ์ฐจ์ด์ 
  • solution์€ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๊ณ  ๊ทธ ๋ณ€์ˆ˜๋ฅผ returnํ–ˆ๊ณ , ๋‚˜๋Š” ๊ทธ ๊ฐ’์„ ํ•œ๋ฒˆ์— return์‹œ์ผฐ๋‹ค.
function canIDrinkSoju(age) {
  var result;                          //์ด๋ฒˆ์—” ๋ณ€์ˆ˜๋งŒ ์„ ์–ธ
  
  if (age < 20) {
    result = "์• ์•ผ ๊ฐ€์„œ ๊ณต๋ถ€๋‚˜ ํ•ด๋ผ!"      //์—ฌ๊ธฐ์„œ ๋ณ€์ˆ˜์— ํ• ๋‹น
  } else if (age >= 50) {
    result = "๊ฑด๊ฐ•์„ ์œ„ํ•ด์„œ ์ˆ ์€ ์ ๋‹นํžˆ ๋งˆ์‹œ์„ธ์š”!"
  } else {
    result = "์†Œ์ฃผ์—๋Š” ๊ณฑ์ฐฝ ์–ด๋– ์‹ ๊ฐ€์š”?"
  }
  
  return result;                       //์กฐ๊ฑด๋ฌธ์—์„œ ํ• ๋‹นํ•˜๊ณ  ๋น ์ ธ๋‚˜์™€ ์ด์ œ ๋ณ€์ˆ˜๋ฅผ ์ถœ๋ ฅ!
}

์ถœ๋ ฅ๊ฒฐ๊ณผ




10. ๋น„๊ต์—ฐ์‚ฐ์ž ๐Ÿ’ญ

๋ ๊ฒƒ๊ฐ™์€ ์ฝ”๋“œ๊ฐ€ ์ž๊พธ fail์ด ๋‚˜์™€์„œ ํž˜๋“ค์—ˆ๋˜ ๋ฌธ์ œ,, ์—ด๋ฒˆ์€ ๋„˜๊ฒŒ ์ˆ˜์ •ํ•œ ๊ฒƒ ๊ฐ™๋‹ค ๐Ÿ˜‡

keyword : || &&

rockPaperScissors ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•ด์„œ ๊ฐ€์œ„ ๋ฐ”์œ„ ๋ณด ๊ฒŒ์ž„์„ ๊ตฌํ˜„ํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
player1๊ณผ player2 ์ค‘ ์ด๊ธด ์‚ฌ๋žŒ์ด ๋ˆ„๊ตฐ์ง€ ๋ฆฌํ„ดํ•ด์ฃผ์„ธ์š”.
์˜ˆ๋ฅผ ๋“ค์–ด, player1์ด ์ด๊ฒผ์œผ๋ฉด "player1" ์ด ๋ฆฌํ„ด ๋˜๊ณ  ๊ทธ ๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ๋ผ๋ฉด "player2"๊ฐ€ ๋ฆฌํ„ด์ด ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋งŒ์ผ ๋น„๊ธฐ๋Š” ๊ฒฝ์šฐ์—๋Š” ๋ฌด์กฐ๊ฑด "player1"์ด ๋ฆฌํ„ด ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

player1 ๊ณผ player2 ์˜ ๊ฐ’์€ ๋‹ค์Œ ์…‹ ์ค‘ ํ•˜๋‚˜ ์ž…๋‹ˆ๋‹ค.

  • "๊ฐ€์œ„"
  • "๋ฐ”์œ„"
  • "๋ณด"
    โ†’ ์˜ˆ๋ฅผ ๋“ค์–ด, player1์€ "๊ฐ€์œ„" ์ด๊ณ  player2๋Š” "๋ณด" ์ด๋ฉด "player1" ์ด ๋ฆฌํ„ด ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


    ๊ฐ€๋Šฅํ•˜๋ฉด || ์™€ && ์—ฐ์‚ฐ์ž ๋‘˜๋‹ค ์‚ฌ์šฉํ•ด์ฃผ์„ธ์š”.

๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ
ver.1

function rockPaperScissors(player1, player2) {
   if ( player1 === '๋ฐ”์œ„' && player2 === '๋ณด') { //1์ด ๋ฐ”์œ„์ด๊ณ  2๊ฐ€ ๋ณด ์ผ๋•Œ!
         const result = "player2";
         return result;
      } else if (player1 === '๋ฐ”์œ„' && player2 === '๊ฐ€์œ„') {
       const result = "player1";
         return result;
      } else if (player1 === '๋ณด' && player2 === '๋ฐ”์œ„') {
         const result = "player1";
         return result;
      } else if (player1 === '๋ณด' && player2 === '๊ฐ€์œ„') {
       const result = "player2";
         return result;
      } else if (player1 === '๊ฐ€์œ„' && player2 === '๋ณด') {
         const result = "player1"; 
          return result;
      } else if (player1 === '๊ฐ€์œ„' && player2 === '๋ฐ”์œ„') {
         const result = "player2";
          return result;
      } else {                       // ๊ทธ ์ด์™ธ์˜ ๊ฒฝ์šฐ (= ๋น„๊ฒผ์„ ๋•Œ)
         const result = "player1"; 
          return result;
      }   
}

ver.2 โ†’ ์ฒ˜์Œ์— ์ž‘์„ฑํ•ด๋ดค๋˜ ์ฝ”๋“œ์˜€๋Š”๋ฐ ์ž๊พธ fail์ด ๋‚˜์™€์„œ ver.1๋กœ ์ œ์ถœํ–ˆ๋‹ค๊ฐ€! ์™œ ์•ˆ๋˜๋Š”์ง€ ๊ถ๊ธˆํ•ด์„œ ๋‹ค์‹œ ๋Œ๋ ค๋ดค๋Š”๋ฐ ์ด๋ฒˆ์—” pass๋‚˜ ๋‚˜์™”๋‹ค.๐Ÿค”โ“

  • ver.2 ์ฝ”๋“œ์™€ solution ๋น„๊ต)
  • ์ด ์„ธ๋ฒˆ์˜ if์™€ else if ์ค‘์—์„œ ||๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์•ž ๋’ค์— ๋ฐ˜๋ณตํ•ด์„œ "๊ฐ€์œ„" , "๋ฐ”์œ„", "๋ณด" ๊ฐ€ ๋“ค์–ด๊ฐ€๋Š”๋ฐ ๊ทธ๊ฑธ ๋˜ "๊ฐ€์œ„" && ("๋ฐ”์œ„" || "๋ณด") ๋กœ ํ•  ์ˆ˜ ์žˆ๋Š”๊ฑธ ์ƒ๊ฐ ๋ชปํ–ˆ๋‹ค!!
function rockPaperScissors(player1, player2) {
let result;

if ( (player1 === "๊ฐ€์œ„" && player2 === "๋ณด") || (player1 === "๊ฐ€์œ„" && player2 === "๊ฐ€์œ„")) {
    result = "player1"
} else if ((player1 === "๋ฐ”์œ„" && player2 === "๊ฐ€์œ„")||(player1 === "๋ฐ”์œ„" && player2 === "๋ฐ”์œ„")) {
    result = "player1"
}  else if ( (player1 === "๋ณด" && player2 === "๋ฐ”์œ„")||(player1 === "๋ณด" && player2 ==="๋ณด")) {
    result = "player1"
} else {
  result = "player2"
}

  return result;
};

Model Solution

  • ๋‚ด ์ฝ”๋“œ์™€์˜ ์ฐจ์ด์  ๋ฐ ๋Š๋‚€์ 
  • ๋‚ด๊ฐ€ ์ง  ์ฝ”๋“œ๋“ค ์ค‘์—์„œ ๋ญ”๊ฐ€ ๊ฒน์น˜๋Š” ๊ฒƒ ๊ฐ™์€ ๊ฑฐ๋Š” ๋‹ค์‹œ ๋˜ ๋” ์•ˆ ๊ฒน์น˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š”๊ฒƒ ๊ฐ™๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” {์ฝ”๋“œ ๋ธ”๋Ÿญ ์•ˆ์—์„œ} result ๋ฅผ ์„ ์–ธํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•˜๊ณ  ํ•ด์คฌ๋Š”๋ฐ ... ๊ทธ๋Ÿฌ๋ฉด ๋ชจ๋“  ์ฝ”๋“œ ๋ธ”๋Ÿญ ๋งˆ๋‹ค ๋™์ผํ•œ ๋ณ€์ˆ˜ ์„ ์–ธ ์ฝ”๋“œ๊ฐ€ ๊ณ„์† ๋“ค์–ด๊ฐ€์„œ ์•ˆ ์ข‹์€ ๊ฒƒ ๊ฐ™๋‹ค. ์ œ์ผ ๋ฐ”๊นฅ์—๋‹ค๊ฐ€ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธ ํ•ด์ฃผ๊ณ  ์•ˆ์—์„œ๋Š” ์ƒˆ๋กœ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ๋งŒ ํ•˜๋Š”๊ฒŒ ์ข‹๊ฒ ๋‹ค. ์†”๋ฃจ์…˜๋“ค์€ ๋Œ€๋ถ€๋ถ„ ๊ทธ๋ ‡๊ฒŒ ์ฝ”๋“œ๊ฐ€ ์“ฐ์—ฌ์ ธ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.
function rockPaperScissors(player1, player2) {
  var result;      //๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ 
  
  if ( player1 === "๊ฐ€์œ„" && (player2 === "๋ณด" || player2 == "๊ฐ€์œ„") ) {
    result = "player1"   //๊ฐ ๊ฒฝ์šฐ์— ํ•ด๋‹นํ•˜๋Š” ๊ณณ์—์„œ ๋ณ€์ˆ˜์— ๋ฐ˜ํ™˜ํ•  ๊ฐ’ ํ• ๋‹น!
  } else if (player1 === "๋ฐ”์œ„" && (player2 === "๊ฐ€์œ„" || player2 == "๋ฐ”์œ„")) {
    result = "player1"   //๊ฐ ๊ฒฝ์šฐ์— ํ•ด๋‹นํ•˜๋Š” ๊ณณ์—์„œ ๋ณ€์ˆ˜์— ๋ฐ˜ํ™˜ํ•  ๊ฐ’ ํ• ๋‹น!
  } else if (player1 === "๋ณด" && (player2 === "๋ฐ”์œ„" || player2 == "๋ณด")) {
    result = "player1"   //๊ฐ ๊ฒฝ์šฐ์— ํ•ด๋‹นํ•˜๋Š” ๊ณณ์—์„œ ๋ณ€์ˆ˜์— ๋ฐ˜ํ™˜ํ•  ๊ฐ’ ํ• ๋‹น!
  } else {
    result = "player2"   //๊ฐ ๊ฒฝ์šฐ์— ํ•ด๋‹นํ•˜๋Š” ๊ณณ์—์„œ ๋ณ€์ˆ˜์— ๋ฐ˜ํ™˜ํ•  ๊ฐ’ ํ• ๋‹น!
  }
  
  return result   //์กฐ๊ฑด๋ฌธ์—์„œ ๋‚˜์™€์„œ ํ• ๋‹น๋œ result๋ฅผ ์ด์ œ ๋ฐ˜ํ™˜!
}

์ถœ๋ ฅ๊ฒฐ๊ณผ




11. Function- ๋ฐ์ดํ„ฐ ๋ฐ›๊ธฐ โ“

keyword : argument ์ „๋‹ฌ

  1. ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌ ๋ฐ›๋Š” isbiggerThanHundred ์ด๋ผ๋Š” ์ด๋ฆ„์˜ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”.
  2. isbiggerThanHundred ํ•จ์ˆ˜์—์„œ ๋ฐ›์€ argument๋ฅผ myNumber๋ผ๋Š” parameter์— ์ €์žฅํ•ด์ฃผ์„ธ์š”.
  3. isbiggerThanHundred ํ•จ์ˆ˜์—์„œ
    • myNumber๊ฐ€ 100๋ณด๋‹ค ํฌ๋ฉด "ํฌ๋‹ค!"๋ผ๋Š” ๋ฌธ์ž์—ด์„ return ํ•ด์ฃผ์„ธ์š”.
    • myNumber๊ฐ€ 100๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉด "์ž‘๋‹ค!"๋ผ๋Š” ๋ฌธ์ž์—ด์„ return ํ•ด์ฃผ์„ธ์š”.

๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ

function isbiggerThanHundred(myNumber) {
  if (myNumber > 100){
    return "ํฌ๋‹ค!";
  } else {
    return "์ž‘๋‹ค!";
  }
};

Model Solution

  • ๋‚ด ์ฝ”๋“œ์™€์˜ ์ฐจ์ด์ 
  • solution์€ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•ด์„œ ํ• ๋‹น๋œ ๋ณ€์ˆ˜๋ฅผ ์กฐ๊ฑด์‹์— ๋„ฃ์—ˆ๊ณ , ๋‚˜๋Š” ๋ฐ›์€ ์ธ์ž๋ฅผ ๋ฐ”๋กœ ์กฐ๊ฑด์— ๋„ฃ์–ด์„œ ๋น„๊ตํ–ˆ๋‹ค.
function isbiggerThanHundred(num) {
  let myNumber = num;
  if(myNumber > 100) {
    return "ํฌ๋‹ค!";
  } else if(myNumber <= 100){
    return "์ž‘๋‹ค!";
  }
}

์งˆ๋ฌธ์žˆ๋‹ค! ์™œ ๋ณ€์ˆ˜์— ๋‹ค์‹œ ํ• ๋‹นํ•œ๊ฑด์ง€! ์—ฌ๊ธฐ์—์„œ๋Š” ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๊ฑฐ์ง€๋งŒ ๋‹ค๋ฅธ ๋” ๋ณต์žกํ•œ ์ฝ”๋“œ์ผ ๋•Œ ์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ ํ•ด์•ผํ•ด์„œ ์—ฌ๊ธฐ๋„ ๊ทธ๋ ‡๊ฒŒ ํ•ด์ค€๊ฑด์ง€, ์•„๋‹ˆ๋ฉด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ฐ”๋กœ ์กฐ๊ฑด๋ฌธ์— ๋„ฃ์œผ๋ฉด ์•ˆ์ข‹์€๊ฒŒ(์˜ค๋ฅ˜๊ฐ€ ์ƒ๊ธฐ๋Š”๊ฒŒ) ์žˆ๋Š”์ง€! โ“
โ†’ โœจ ๋ฉ˜ํ† ๋‹˜ ๋‹ต๋ณ€ : ์ด ๋ฌธ์ œ ์ž์ฒด์˜ ๊ฒฝ์šฐ์—๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ณ€ํ˜•ํ•˜๊ฑฐ๋‚˜ ๊ทธ๋Ÿฐ๊ฒŒ ์•„๋‹ˆ๊ณ  ๋‹จ์ˆœํžˆ ๋น„๊ตํ•ด์„œ ๊ฐ’์„ ๋ฆฌํ„ดํ•˜๋Š”๊ฑฐ๊ธฐ๋•Œ๋ฌธ์— ๊ตณ์ด ๋ณ€์ˆ˜์— ํ• ๋‹นํ•ด์„œ ํ•˜๋Š”๊ฑด ์˜คํžˆ๋ ค ๋ฒˆ๊ฑฐ๋กญ๊ณ  ์ด ๊ฒฝ์šฐ๋Š” ๋‚ด๊ฐ€ ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ฐ”๋กœ ์กฐ๊ฑด๋ฌธ์— ๋„ฃ์–ด์ฃผ๋Š”๊ฒŒ ๋” ๋‚˜์„์ˆ˜๋„ ์žˆ๋Š”๊ฑฐ๋‹ค. ํ•˜์ง€๋งŒ ์˜ˆ๋ฅผ๋“ค์–ด ๋งŒ์•ฝ ๋ฐฐ์—ด์ด ๋“ค์–ด์˜ค๋Š”๋ฐ ํ™€์ˆ˜์ธ๋ฑ์Šค๋งŒ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋“ฑ๋“ฑ. ์ด๋Ÿฐ ๊ฒฝ์šฐ๋Š” ์›๋ณธ(?) ์„ ๊ทธ๋ƒฅ ๋ฐ”๋กœ ์†๋Œ€๋ฉด ์•ˆ๋Œ€๊ณ  ํ• ๋‹นํ•ด์„œ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๋“ค์ด ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ,, ์ƒํ™ฉ์— ๋”ฐ๋ผ์„œ ๋‹ค๋ฅด๋‹ค.

์ถœ๋ ฅ๊ฒฐ๊ณผ




12. Function - parameter,argument โ“

keyword : parameter(๋งค๊ฐœ๋ณ€์ˆ˜) / argument(์ธ์ž)

Assignment 1
ํ•จ์ˆ˜ halfNumber ๋ฅผ ์„ ์–ธํ•˜๊ณ  ๊ตฌํ˜„ํ•˜์„ธ์š”.
1. ์ˆซ์ž๋กœ ๋œ ์ธ์ž ํ•˜๋‚˜๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค.
2. ๋ฐ›์€ ๊ฐ’์„ 2๋กœ ๋‚˜๋ˆˆ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.
3. ๋งค๊ฐœ๋ณ€์ˆ˜ ์ด๋ฆ„์€ ๋งˆ์Œ๋Œ€๋กœ ์ •ํ•ด์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Assignment 2
ํ•จ์ˆ˜ halfAndAddNumber๋ฅผ ์„ ์–ธํ•˜๊ณ  ๊ตฌํ˜„ํ•˜์„ธ์š”.
1. ์ˆซ์ž๋กœ ๋œ ์ธ์ž ํ•˜๋‚˜๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค.
2. 1๋ฒˆ ๋ฌธ์ œ์—์„œ ๋งŒ๋“ค์—ˆ๋˜ halfNumber๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด์„œ, ์ธ์ž๋กœ ๋ฐ›์•˜๋˜ ๊ฐ’์„ ๋‹ค์‹œ halfNumber ํ•จ์ˆ˜์— ์ „๋‹ฌํ•ด์ค๋‹ˆ๋‹ค.
3. halfNumber์˜ ๋ฆฌํ„ด๊ฒฐ๊ณผ๋ฅผ ํ•จ์ˆ˜ ์•ˆ์ชฝ์—์„œ ๋ณ€์ˆ˜๋ช… result์— ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
4. result์— 1์„ ๋”ํ•œ ๊ฐ’์„ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ

function halfNumber(num) {
  const halfNum = num/2;
  return halfNum
}

function halfAndAddNumber(num) {
  const result = halfNumber(num);
  return result + 1;
}

Model Solution

  • ๋‚ด ์ฝ”๋“œ์™€์˜ ์ฐจ์ด์ 
  • ์•ž์—์„œ ๊ณ„์† ๋ณ€์ˆ˜์— ํ• ๋‹นํ•ด์ฃผ๊ณ  return ํ•ด์ค˜์„œ, ์ด๋ฒˆ์— ํ’€๋•Œ๋Š” ๋‚˜๋„ ๊ทธ๋ ‡๊ฒŒ ํ•ด์คฌ์—ˆ๋Š”๋ฐ.. solution์—์„œ halfNumberํ•จ์ˆ˜๋Š” ์ธ์ž๋ฅผ ๋ฐ›์•„์„œ ๋ฐ”๋กœ ์—ฐ์‚ฐ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ณ  return์‹œ์ผฐ๋‹ค.
function halfNumber(value) {
  return value / 2;
}

function halfAndAddNumber(value) {
  let result = halfNumber(value);     
  return result + 1;
}

์งˆ๋ฌธ์žˆ๋‹ค!
1. halfAndAddNumber ํ•จ์ˆ˜๋ฅผ ๋ณด๋ฉด ์•ˆ์— let์œผ๋กœ result ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ–ˆ๋Š”๋ฐ,, let ์œผ๋กœ ํ•ด์ค˜์•ผ๋งŒ ํ•˜๋Š”๊ฑด์ง€!
(ํ˜ผ์ž ํ•ด๋ณผ๋•Œ๋Š” const ๋กœ ํ•ด๋„ ๋˜๊ธฐ๋Š” ํ–ˆ์—ˆ๋Š”๋ฐ ํ˜น์‹œ let ์œผ๋กœ ์จ ์ค€ ์ด์œ ๊ฐ€ ์žˆ๋Š”์ง€!)
2. ํ˜น์‹œ ์ด๋ ‡๊ฒŒ ํ•จ์ˆ˜ ๋‚ด์—์„œ result ๋ณ€์ˆ˜ ์ฒ˜๋Ÿผ ์ธ์ž๊ฐ€ ํ• ๋‹น๋˜์–ด ์ฒ˜๋ฆฌ๋˜๊ณ  ๊ฐ’์ด const ๋ชจ๋ชจ ์— ํ• ๋‹น๋˜๊ณ , ๋‹ค์‹œ ๋‹ค์Œ๋ฒˆ์— ๋˜ ์ธ์ž๊ฐ€ ๋“ค์–ด์™€์„œ ๊ทธ๊ฒŒ ๋˜ ์ฒ˜๋ฆฌ๋  ๋•Œ const ๋ชจ๋ชจ ๋ผ๊ณ  ํ• ๋‹น์ด ๋  ํ…๋ฐ,, ๊ทธ๋Ÿผ const ์„ ์–ธ์ด๊ธฐ๋•Œ๋ฌธ์— ๋˜‘๊ฐ™์€ ๋ณ€์ˆ˜์— ๋˜ ํ• ๋‹นํ–ˆ๋‹ค๊ณ  ์—๋Ÿฌ๊ฐ€ ๋œจ๋Š”๊ฑด์ง€! ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค~ ๐Ÿ™‹๐Ÿปโ€โ™€๏ธโ“

โ†’ โœจ ๋ฉ˜ํ† ๋‹˜ ๋‹ต๋ณ€ : ์ง€๊ธˆ๋‚ด๊ฐ€ scope์— ๋Œ€ํ•œ ๊ฐœ๋…์ด ์—†์–ด์„œ ๊ทธ๋Ÿฐ๊ฑด๋ฐ, ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ• ๋•Œ๋งˆ๋‹ค ๊ฐ๊ฐ ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜๋“ค์ด ์ƒˆ๋กœ์šด ์Šค์ฝ”ํ”„์•ˆ์—์„œ ์ฒ˜๋ฆฌ๋˜๋Š”๊ฑฐ๋ผ์„œ ๊ทธ๋Ÿฐ const ์žฌํ• ๋‹น๊ฐ™์€ ๋ฌธ์ œ๋Š” ์•ˆ์ƒ๊ธด๋‹ค!

์ถœ๋ ฅ๊ฒฐ๊ณผ




13. Function - ์—ฌ๋Ÿฌ ์ธ์ž ๐ŸŒช

return ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ ํ˜ผ๋ž€์ด ์ƒ๊ฒผ๋‹ค๊ฐ€ ํ•ด๊ฒฐ ๐Ÿฅณ

keyword : ์—ฌ๋Ÿฌ ์ธ์ž ๋„˜๊ธฐ๊ธฐ / if ( aaa ) return bbb;

  • meetAt ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”.
  • ์ธ์ž๋ฅผ ์„ธ๊ฐœ ๋ฐ›์Šต๋‹ˆ๋‹ค.
  • ์ฒซ๋ฒˆ์งธ ์ธ์ž๋Š” ๋…„๋„์— ํ•ด๋‹นํ•˜๋Š” ์ˆซ์ž์ž…๋‹ˆ๋‹ค.
  • ๋‘๋ฒˆ์งธ ์ธ์ž๋Š” ์›”์— ํ•ด๋‹นํ•˜๋Š” ์ˆซ์ž์ž…๋‹ˆ๋‹ค.
  • ์„ธ๋ฒˆ์งธ ์ธ์ž๋Š” ์ผ์— ํ•ด๋‹นํ•˜๋Š” ์ˆซ์ž์ž…๋‹ˆ๋‹ค.
  • ๋…„๋„ ์ธ์ž๋งŒ ๋ฐ›์•˜์„ ๊ฒฝ์šฐ --> "1234๋…„" ๊ณผ ๊ฐ™์€ ํ˜•์‹์˜ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ด ํ•ด์ฃผ์„ธ์š”.
    ๋…„๋„,์›” ์ธ์ž๋ฅผ ๋ฐ›์•˜์„ ๊ฒฝ์šฐ ---> ๋…„๋„์™€ ์›”์„ ์กฐํ•ฉํ•ด์„œ "1234๋…„ 5์›”" ๊ณผ ๊ฐ™์€ ํ˜•์‹์˜ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ด ํ•ด์ฃผ์„ธ์š”.
    ๋…„๋„,์›”,์ผ ์ธ์ž๋ฅผ ์ „๋ถ€ ๋ฐ›์•˜์„ ๊ฒฝ์šฐ --> ๋…„๋„,์›”,์ผ์„ ์กฐํ•ฉํ•ด์„œ "1234/5/6" ๊ณผ ๊ฐ™์€ ํ˜•์‹์˜ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ด ํ•ด์ฃผ์„ธ์š”.

๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ
โ†’ ๐Ÿ‘€ ๋‚ด ์ ‘๊ทผ : ์—ฐ๋„๋งŒ ์žˆ์„๋•Œ | ์—ฐ๋„๋ž‘ ์›” ์žˆ์„๋•Œ | ๋‹ค ์žˆ์„ ๋•Œ์— ๋”ฐ๋ผ์„œ ๋‹ค๋ฅด๋‹ˆ๊นŒ! ์—†๋Š”๊ฑฐ ์ฐจ์ด๋ฅผ ์ด์šฉํ•ด์„œ, ์ผ ์ธ์ž๊ฐ€ ์žˆ์„ ๋•Œ โ‡’ ์›” ์ธ์ž๊ฐ€ ์žˆ์„ ๋•Œ โ‡’ ์—ฐ๋„ ์žˆ์„ ๋•Œ! ... ์ด๋Ÿฐ ์ˆœ์„œ๋Œ€๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค! ๐Ÿ‘Œ๐Ÿป

function meetAt(year, month, date) {
  if(date) {
    return year + "/" + month + "/" + date;
  }
  if(month) {
    return year + "๋…„ " + month + "์›”";
  }
  if(year) {
    return year + "๋…„";
  }
}

ํ—! ๊ทผ๋ฐ ๊ฐ‘์ž๊ธฐ ํ˜ผ๋ž€,,,๐Ÿ’ฅ๐ŸŒช
โ†’ ๋งŒ์•ฝ date ๊นŒ์ง€ ๋‹ค ์žˆ๋Š” ์ƒํƒœ๋ผ๊ณ  ํ•˜๋ฉด, date์—์„œ return ํ•˜๋ฉด ์ „์ฒด ํ•จ์ˆ˜์˜ ์ฝ”๋“œ๋ธ”๋Ÿญ์ด ๋๋‚˜๋ฒ„๋ฆฌ๋Š”๊ฑฐ๊ฐ€ ๋งž๋‚˜? ์–ด์ œ ํ’€๋•Œ๋Š” ๊ทธ ์ƒ๊ฐ์€ ํ•˜๋‚˜๋„ ์•ˆ๋“ค๊ณ  ๊ทธ๋ƒฅ ํ’€์—ˆ๋Š”๋ฐ,, ๊ฐ‘์ž๊ธฐ ํ—ท๊ฐˆ๋ฆฐ๋‹ค..

๊ทธ๋ž˜์„œ

function meetAt(year, month, date) {
  console.log("1");
  if(date) {
    return year + "/" + month + "/" + date;
  }
  console.log("2");
  if(month) {
    return year + "๋…„ " + month + "์›”";
  }
  console.log("3");
  if(year) {
    return year + "๋…„";
  }
}
// ๊ทธ๋ž˜์„œ ์ด๋ ‡๊ฒŒ ์ถœ๋ ฅ์„ ์ค‘๊ฐ„์ค‘๊ฐ„๋งˆ๋‹ค ๋„ฃ์–ด์คฌ๋Š”๋ฐ ์ •๋ง ์•ž์—์„œ return๋˜๋ฉด ๋’ค์—์žˆ๋Š”๊ฒƒ๋“ค์€
// ํ•˜๋‚˜๋„ ์‹คํ–‰์ด ์•ˆ๋œ๋‹ค.

โ†’ ๐Ÿคฆ๐Ÿปโ€โ™€๏ธ๐Ÿคฆ๐Ÿปโ€โ™€๏ธ๐Ÿคฆ๐Ÿปโ€โ™€๏ธ ์Œ

์•„! ๋งž๋Š”๊ฑด๊ฐ€ ๊ทธ๋Ÿผ?? ์™œ๋ƒ๋ฉด ๊ธด ์—ฐ์‚ฐ์„ ํ•˜๋Š” ์ฝ”๋“œ๋ธ”๋Ÿญ์—์„œ return์€ ์•ˆ์“ฐ๊ณ  ๊ทธ๋ƒฅ ํ• ๋‹นํ•œ ํ•˜๊ณ  ๋ธ”๋Ÿญ ๋‚˜๊ฐ€๋‹ˆ๊นŒ..? ๊ทธ๋Ÿผ ๊ฒฐ๋ก ์€ ์ฝ”๋“œ๋ธ”๋Ÿญ ์–ด๋””์—์„œ๋“  return ์„ ๋งŒ๋‚˜๋ฉด ๋ฌด์กฐ๊ฑด ์ข…๋ฃŒ?!
์•„ํ•˜ ใ…Ž โฌ‡๏ธใ…‹


Model Solution

  • ๋‚ด ์ฝ”๋“œ์™€์˜ ์ฐจ์ด์ 
  • ๋‚˜๋Š” if (date) { return ~~ } ์ด๋ ‡๊ฒŒ ํ•ด์คฌ๋Š”๋ฐ
    ์†”๋ฃจ์…˜์—์„œ๋Š” ๋” ๊ฐ„๊ฒฐํ•˜๊ฒŒ if (date) return ~~~ ํ•ด์คฌ๋‹ค. (์ฒ˜์Œ๋ณด๋Š”๋ฐฉ๋ฒ•)
function meetAt(year, month, date) {
  if (date) return year + '/' + month + '/' + date;
  if (month) return year + '๋…„ ' + month + '์›”';
  if (year) return year + '๋…„';
}

โ†’ ???? if ( parameter ) return ํ•ด์ฃผ๋ฉด ๋ธ”๋Ÿญ๊ฐ™์€๊ฑฐ ์—†์ด ๋œ๋‹ค๊ตฌ?????? ๐Ÿคท๐Ÿปโ€โ™€๏ธ๐Ÿคท๐Ÿปโ€โ™€๏ธ๐Ÿคท๐Ÿปโ€โ™€๏ธ
์ถœ์ฒ˜


์ถœ๋ ฅ๊ฒฐ๊ณผ




14. Function - ๋ฐ์ดํ„ฐ ๋ฐ˜ํ™˜ํ•˜๊ธฐ(2)

keyword : return / return์„ ์ƒ๋žตํ•˜๋Š” ํ•จ์ˆ˜๋Š” undefined ๋ฐ˜ํ™˜

getTotal ํ•จ์ˆ˜๋Š” ๊ฐ€๊ฒฉ์„ 2๊ฐœ ๋ฐ›์•„์„œ calculateTotal ํ˜ธ์ถœ ๋ฐ˜ํ™˜๊ฐ’์„ ๋”ํ•ด์„œ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
getTotal ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”!
1. getTotal ์ด๋ผ๋Š” ์ด๋ฆ„์˜ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”. ๊ฐ€๊ฒฉ์ •๋ณด 2๊ฐœ๋ฅผ ์ธ์ž๋กœ ๋ฐ›์Šต๋‹ˆ๋‹ค.
2. ์ธ์ž์ด๋ฆ„์€ ์›ํ•˜๋Š”๋Œ€๋กœ ์ง€์–ด์ฃผ์…”๋„ ๋ฉ๋‹ˆ๋‹ค.
3. getTotal ํ•จ์ˆ˜์—์„œ ์ธ์ž๋กœ ๋ฐ›์€ ๊ฐ€๊ฒฉ์œผ๋กœ ๊ฐ๊ฐ calculateTotal ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด์ฃผ์„ธ์š”. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ฒฐ๊ณผ๊ฐ’์„ ๋”ํ•ด์„œ ๋ฐ˜ํ™˜ํ•ด์ฃผ์„ธ์š”.


์ฐธ๊ณ !

  • getTax ํ•จ์ˆ˜๋Š” ๊ฐ€๊ฒฉ์˜ tax๋ฅผ ๊ตฌํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • calculateTotal ํ•จ์ˆ˜๋Š” ์ƒํ’ˆ์˜ ๊ฐ€๊ฒฉ์— tax๋ฅผ ๋”ํ•œ ๊ฐ’์„ ๊ตฌํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • getTotal ํ•จ์ˆ˜๋Š” ๋‘ ์ƒํ’ˆ์˜ ๊ฐ€๊ฒฉ์„ ๋”ํ•ด์„œ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ

function getTotal(price1, price2) {
  const firstPrice = calculateTotal(price1);
  const secondPrice = calculateTotal(price2);
  
  return firstPrice + secondPrice;
}

function calculateTotal(price) {
//์•„๋งˆ๋„ ์ด ํ•จ์ˆ˜๋Š” ์›๋ž˜ ์ด๋ฏธ ์žˆ๋˜ ํ•จ์ˆ˜๊ฐ™๋‹ค! ๋‚ด๊ฐ€ ์ž‘์„ฑ์•ˆํ–ˆ๋˜๊ฑฐ ๊ฐ™๋‹ค
  return price + price * 0.1;
}

Model Solution

  • ๋‚ด ์ฝ”๋“œ์™€์˜ ์ฐจ์ด์ 
  • ์†”๋ฃจ์…˜์—์„œ๋Š” ๊ทธ๋ƒฅ ํ˜ธ์ถœํ•˜๋ฉด์„œ ๋ฐ”๋กœ ๋”ํ•ด ๋ฆฌํ„ดํ–ˆ๋‹ค.
function getTotal(price1, price2) {
  return calculateTotal(price1) + calculateTotal(price2);
}

์ถœ๋ ฅ๊ฒฐ๊ณผ




๐Ÿ”ฅ <--- ์–ด๋ ค์› ๋‹ค!

๐Ÿ’ญ <--- ๋Š๋‚€์ !

โ“ <--- ์งˆ๋ฌธ!

๐ŸŒช <--- ํ˜ผ๋ž€!

profile
Becoming a front-end developer ๐ŸŒฑ

0๊ฐœ์˜ ๋Œ“๊ธ€