keyword : console.log
Console์ "I love WeCode!" ๋ฅผ ์ถ๋ ฅํด์ฃผ์ธ์.
๋ด๊ฐ ์์ฑํ ์ฝ๋ (Model Solution๊ณผ ๋์ผ) โ
console.log("I love WeCode!") //์ฝ์๋ก๊ทธ๋ฅผ ์ด์ฉํด ์ถ๋ ฅํ๋ค.
์ถ๋ ฅ๊ฒฐ๊ณผ
keyword : /* */
//
index.js์ ์๋ ignore() ํจ์๊ฐ ์คํ๋ ์ ์๋๋ก ์ฃผ์์ ํ์ด ์ฃผ์ธ์.
๋ด๊ฐ ์์ฑํ ์ฝ๋ (Model Solution๊ณผ ๋์ผ) โ
function ignore() {
return true;
}
ignore();
/* (์ฐธ๊ณ )
์ฌ๋ฌ
์ค
์ฃผ์
*/
//ํ ์ค ์ฃผ์
keyword : const
- index.js์ย
variables
ย ๋ผ๋ ํจ์๊ฐ ์์ต๋๋ค.- ๊ทธ ์์ myAge๋ผ๋ ๋ณ์๊ฐ ์ด๋ฏธ ์ ์ธ๋์ด ์์ต๋๋ค.
- yourAge๋ผ๋ ๋ณ์๋ฅผ ์๋กญ๊ฒ ์ ์ธํ๊ณ ๋์ด๋ฅผ ํ ๋นํด์ฃผ์ธ์.
- myAge์ yourAge ๋ณ์์ ํฉ์ด 50์ด ๋ ์ ์๋๋ก yourAge์ ๊ฐ์ ์ ํด์ฃผ์ธ์.
๋ด๊ฐ ์์ฑํ ์ฝ๋ (Model Solution๊ณผ ๋์ผ) โ
function variables() {
// ๋ค์ ์ฝ๋๋ ์์ ํ๊ฑฐ๋ ์ง์ฐ์ง ๋ง์ธ์
const myAge = 21;
// ์๋์ ์ฝ๋๋ฅผ ์์ฑํด ์ฃผ์ธ์
const yourAge = 29;
// ๋ค์ ์ฝ๋๋ ์์ ํ๊ฑฐ๋ ์ง์ฐ์ง ๋ง์ธ์
return myAge + yourAge;
}
์ถ๋ ฅ๊ฒฐ๊ณผ
keyword : return
/ function()
์๋์ ์ค๋ช ์ ๋ฃ๊ณ ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
- ํจ์ ์ด๋ฆ์ checkYear๋ก ํด์ฃผ์ธ์.
- ์ฌํด ๋ ๋๋ฅผ returnํฉ๋๋ค.
- ๋ ๋๋ฅผ ์์ฑํ ๋๋ ""(์๋ฐ์ดํ)์์ด ์ซ์๋ง 4์๋ฆฌ ์จ์ฃผ์ธ์.
๋ด๊ฐ ์์ฑํ ์ฝ๋ (Model Solution๊ณผ ๋์ผ) โ
function checkYear() {
// ์ฝ๋๋ฅผ ์์ฑํด์ฃผ์ธ์
const thisYear = 2021; //2021๋
์ฌํด ๋
๋๋ฅผ thisYear์ ํ ๋น์ํค๊ณ
return thisYear; //2021์ด ํ ๋น๋ thisYear๋ฅผ return!
}
checkYear();
์ถ๋ ฅ๊ฒฐ๊ณผ
keyword : parameter(๋งค๊ฐ๋ณ์)
/ argument(์ธ์)
/ return
์๋์ ์ค๋ช ์ ๋ฃ๊ณ ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
- ํจ์ ์ด๋ฆ์ addTen ์ ๋๋ค.
- ๋ฐ์ parameter์ 10์ ๋ํด์ ๋ฐํ(return)ํด์ฃผ์ธ์.
๋ด๊ฐ ์์ฑํ ์ฝ๋ (Model Solution๊ณผ ๋์ผ) โ
function addTen(num) {
return num+10; //parameter๋ก ๋ค์ด์จ num์๋ค๊ฐ 10์ ๋ํด์ ๋ฆฌํด!
}
์ถ๋ ฅ๊ฒฐ๊ณผ
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
}
์ถ๋ ฅ๊ฒฐ๊ณผ
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;
}
์ถ๋ ฅ๊ฒฐ๊ณผ
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
function myFavoriteColor(color) {
var result = "" //๋จผ์ ๋น ๋ฌธ์์ด์ result์ ํ ๋น
if (color === "navy") {
result = "Good!"; //๊ฐ ์กฐ๊ฑด๋ง๋ค ํด๋นํ๋ ๊ฒฐ๊ณผ๊ฐ์ ์ฌํ ๋น
} else if (color === "yellow") {
result = "Bad!";
} else {
result = "Whatever!";
}
return result; //์กฐ๊ฑด๋ฌธ์์ ๋น ์ ธ๋์จ ํ ์ต์ข
result๋ฅผ ๋ฐํ!
}
์ถ๋ ฅ๊ฒฐ๊ณผ
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
function canIDrinkSoju(age) {
var result; //์ด๋ฒ์ ๋ณ์๋ง ์ ์ธ
if (age < 20) {
result = "์ ์ผ ๊ฐ์ ๊ณต๋ถ๋ ํด๋ผ!" //์ฌ๊ธฐ์ ๋ณ์์ ํ ๋น
} else if (age >= 50) {
result = "๊ฑด๊ฐ์ ์ํด์ ์ ์ ์ ๋นํ ๋ง์์ธ์!"
} else {
result = "์์ฃผ์๋ ๊ณฑ์ฐฝ ์ด๋ ์ ๊ฐ์?"
}
return result; //์กฐ๊ฑด๋ฌธ์์ ํ ๋นํ๊ณ ๋น ์ ธ๋์ ์ด์ ๋ณ์๋ฅผ ์ถ๋ ฅ!
}
์ถ๋ ฅ๊ฒฐ๊ณผ
๋ ๊ฒ๊ฐ์ ์ฝ๋๊ฐ ์๊พธ 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๋ ๋์๋ค.๐คโ
||
๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ค์ ๋ฐ๋ณตํด์ "๊ฐ์" , "๋ฐ์", "๋ณด" ๊ฐ ๋ค์ด๊ฐ๋๋ฐ ๊ทธ๊ฑธ ๋ "๊ฐ์" && ("๋ฐ์" || "๋ณด")
๋ก ํ ์ ์๋๊ฑธ ์๊ฐ ๋ชปํ๋ค!! 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
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๋ฅผ ์ด์ ๋ฐํ!
}
์ถ๋ ฅ๊ฒฐ๊ณผ
keyword : argument ์ ๋ฌ
- ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌ ๋ฐ๋ isbiggerThanHundred ์ด๋ผ๋ ์ด๋ฆ์ ํจ์๋ฅผ ๋ง๋ค์ด์ฃผ์ธ์.
- isbiggerThanHundred ํจ์์์ ๋ฐ์ argument๋ฅผ myNumber๋ผ๋ parameter์ ์ ์ฅํด์ฃผ์ธ์.
- isbiggerThanHundred ํจ์์์
- myNumber๊ฐ 100๋ณด๋ค ํฌ๋ฉด "ํฌ๋ค!"๋ผ๋ ๋ฌธ์์ด์ return ํด์ฃผ์ธ์.
- myNumber๊ฐ 100๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ผ๋ฉด "์๋ค!"๋ผ๋ ๋ฌธ์์ด์ return ํด์ฃผ์ธ์.
๋ด๊ฐ ์์ฑํ ์ฝ๋
function isbiggerThanHundred(myNumber) {
if (myNumber > 100){
return "ํฌ๋ค!";
} else {
return "์๋ค!";
}
};
Model Solution
function isbiggerThanHundred(num) {
let myNumber = num;
if(myNumber > 100) {
return "ํฌ๋ค!";
} else if(myNumber <= 100){
return "์๋ค!";
}
}
์ง๋ฌธ์๋ค! ์ ๋ณ์์ ๋ค์ ํ ๋นํ๊ฑด์ง! ์ฌ๊ธฐ์์๋ ๊ฐ๋จํ ์ฝ๋๋ฅผ ์์ฑํ๊ฑฐ์ง๋ง ๋ค๋ฅธ ๋ ๋ณต์กํ ์ฝ๋์ผ ๋ ์ด๋ฐ ๋ฐฉ์์ผ๋ก ํด์ผํด์ ์ฌ๊ธฐ๋ ๊ทธ๋ ๊ฒ ํด์ค๊ฑด์ง, ์๋๋ฉด ๋งค๊ฐ๋ณ์๋ฅผ ๋ฐ๋ก ์กฐ๊ฑด๋ฌธ์ ๋ฃ์ผ๋ฉด ์์ข์๊ฒ(์ค๋ฅ๊ฐ ์๊ธฐ๋๊ฒ) ์๋์ง! โ
โ โจ ๋ฉํ ๋ ๋ต๋ณ : ์ด ๋ฌธ์ ์์ฒด์ ๊ฒฝ์ฐ์๋ ๋งค๊ฐ๋ณ์๋ฅผ ๋ณํํ๊ฑฐ๋ ๊ทธ๋ฐ๊ฒ ์๋๊ณ ๋จ์ํ ๋น๊ตํด์ ๊ฐ์ ๋ฆฌํดํ๋๊ฑฐ๊ธฐ๋๋ฌธ์ ๊ตณ์ด ๋ณ์์ ํ ๋นํด์ ํ๋๊ฑด ์คํ๋ ค ๋ฒ๊ฑฐ๋กญ๊ณ ์ด ๊ฒฝ์ฐ๋ ๋ด๊ฐ ํ ๊ฒ์ฒ๋ผ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฐ๋ก ์กฐ๊ฑด๋ฌธ์ ๋ฃ์ด์ฃผ๋๊ฒ ๋ ๋์์๋ ์๋๊ฑฐ๋ค. ํ์ง๋ง ์๋ฅผ๋ค์ด ๋ง์ฝ ๋ฐฐ์ด์ด ๋ค์ด์ค๋๋ฐ ํ์์ธ๋ฑ์ค๋ง ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๊ณ ๋ฑ๋ฑ. ์ด๋ฐ ๊ฒฝ์ฐ๋ ์๋ณธ(?) ์ ๊ทธ๋ฅ ๋ฐ๋ก ์๋๋ฉด ์๋๊ณ ํ ๋นํด์ ์ฒ๋ฆฌ๋ฅผ ํด์ผ ํ๋ ๊ฒฝ์ฐ๋ค์ด ์๋ค๊ณ ํ๋ค. ๊ทธ๋ฌ๋๊น,, ์ํฉ์ ๋ฐ๋ผ์ ๋ค๋ฅด๋ค.
์ถ๋ ฅ๊ฒฐ๊ณผ
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
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 ์ฌํ ๋น๊ฐ์ ๋ฌธ์ ๋ ์์๊ธด๋ค!
์ถ๋ ฅ๊ฒฐ๊ณผ
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 ํด์ฃผ๋ฉด ๋ธ๋ญ๊ฐ์๊ฑฐ ์์ด ๋๋ค๊ตฌ?????? ๐คท๐ปโโ๏ธ๐คท๐ปโโ๏ธ๐คท๐ปโโ๏ธ
์ถ์ฒ
์ถ๋ ฅ๊ฒฐ๊ณผ
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);
}
์ถ๋ ฅ๊ฒฐ๊ณผ