๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

javascript/๋ฐ”๋‹๋ผ JS๋กœ ํฌ๋กฌ ์•ฑ ๋งŒ๋“ค๊ธฐ

DAY 3

 

#2.7 Functions part One 

 

<function(ํ•จ์ˆ˜)> : ๊ณ„์† ๋ฐ˜๋ณตํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ ์กฐ๊ฐ

 

- ํ•จ์ˆ˜์˜ ์„ ์–ธ → function ํ•จ์ˆ˜๋ช…() {์‹คํ–‰์ฝ”๋“œ} 

- ํ•จ์ˆ˜์˜ ์‹คํ–‰ → ํ•จ์ˆ˜๋ช…();

 

- ์ธ์ˆ˜(argument) : ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋™์•ˆ ํ•จ์ˆ˜์—๊ฒŒ ์–ด๋–ค ์ •๋ณด๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ, () ์•ˆ์— ์œ„์น˜ํ•œ๋‹ค.

 

 

#2.8 Functions part Two

 

argument๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐ›์•„์˜ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋™์‹œ์— ์—ฌ๋Ÿฌ ๊ฐœ๋„ ๋ฐ›์•„์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

๋งŒ์•ฝ ์ •์˜ํ•œ ํ•จ์ˆ˜์—์„œ argument๋ฅผ ํ•˜๋‚˜๋ฐ–์— ์ •์˜ํ•˜์ง€ ์•Š์•˜๋Š”๋ฐ, ์‹คํ–‰ ์‹œํ‚ฌ ๋•Œ arguments๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ๋„ฃ์œผ๋ฉด ๋งจ ์•ž์— ์žˆ๋Š” argument๋งŒ ์‹คํ–‰๋œ๋‹ค.

function sayHello(myName) {
  console.log("Hello my name is " + myName);
}

sayHello("hayeon");
sayHello("minkyung");

function plus(a, b) {
  console.log(a, b);
  console.log(a + b);
}

plus(); // NaN = Not a Number(์ˆซ์ž๊ฐ€ ์•„๋‹˜)

function divide(a, b) {
  console.log(a / b);
}

divide(98, 20); // 4.9
divide(30, 15, 10); // 2
console.log(myName); // Uncaught ReferenceError, myName is not defined at ~~

 

ํ•จ์ˆ˜ ๋‚ด์— ์„ ์–ธํ•œ ์ž„์˜์˜ argument๋Š” ํ•จ์ˆ˜ ์•ˆ์—์„œ๋งŒ ์กด์žฌํ•œ๋‹ค.

sayHello์˜ myName๋„, plus์™€ divide ํ•จ์ˆ˜ ์•ˆ์— ์žˆ๋Š” a, b๋„ ๋ชจ๋‘ ๊ฐ๊ฐ์˜ ํ•จ์ˆ˜ ์•ˆ์—์„œ๋งŒ ์กด์žฌํ•˜๋ฉฐ, ์ด๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ์ˆœ๊ฐ„ ๊ทธ๋ƒฅ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ๋œ๋‹ค. 

 

object์•ˆ์˜ function์„ ๋ถ€๋ฅด๋Š” ๋ฐฉ๋ฒ•

- ์„ ์–ธ : object = { property๋ช… : ํ•จ์ˆ˜์„ ์–ธ }

- ํ˜ธ์ถœ :  object๋ช….ํ•จ์ˆ˜๋ช…();

 

argument๋ฅผ ๋„ฃ๋Š” ๋ฐฉ๋ฒ•๋„ ์œ„์™€ ๋™์ผํ•˜๋‹ค. 

 

const player = {
  name: "hayeon",
  sayHello: function(){
    console.log("Hello!");
  },
  sayMyAge: function(myAge){
    console.log("I'm " + myAge + " years old.");
  }
}

console.log(player.name);
player.sayHello();
player.sayMyAge(23);

 

 

#2.9 : 2.0~ 2.8 Recap

 

 

<let vs const>

: let์€ ๊ธฐ์กด ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์—…๋Žƒํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ ์žฌํ• ๋‹น์ด ๊ฐ€๋Šฅ, ์žฌ์„ ์–ธ์€ X. ๊ทธ ์ด์™ธ์—๋Š” const๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

let userName = "hayeon";
userName = "minkyung"; // ๊ฐ€๋Šฅ
// let userName = "yerin"; // ์žฌ์„ ์–ธ ๋ถˆ๊ฐ€๋Šฅ

const age = 23;
// age = 23; // ์žฌํ• ๋‹น๋„ ๋ถˆ๊ฐ€๋Šฅ

 

<null vs undefined>

null : ๋ณ€์ˆ˜์— ์•„์˜ˆ ๊ฐ’์ด ์—†์Œ์„ ํ• ๋‹นํ•จ.

undefined : ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ–ˆ์œผ๋‚˜ ์•„์ง ๊ฐ’์„ ํ• ๋‹นํ•˜์ง€ ์•Š์Œ 

 

<array>

const talking = [1, 2, "์•ˆ๋…•ํ•˜์„ธ์š”", 'schoolBoycott', false, null, undefined];
console.log(talking[3]); // schoolBoycott ์ถœ๋ ฅ

// const์—ฌ๋„ ๋ฐฐ์—ด ์•ˆ์˜ ๊ฐ’ ๋ณ€๊ฒฝ, ์ถ”๊ฐ€, ์‚ญ์ œ๋Š” ๊ฐ€๋Šฅ
talking[2] = "์ง‘๋ณด๋‚ด์ฃผ์„ธ์š”" // "์•ˆ๋…•ํ•˜์„ธ์š”"๋ฅผ "์ง‘๋ณด๋‚ด์ฃผ์„ธ์š”"๋กœ ๋ณ€๊ฒฝ
talking.push('๋ฐฑ์ˆ˜');

console.log(talking[2]);
console.log(talking[7]);

const์˜ object ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์€ const ์ž์ฒด๊ฐ€ ์•„๋‹Œ const ์•ˆ์— ์žˆ๋Š” ๊ฐ ๋ฐ์ดํ„ฐ์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ์žฌํ• ๋‹นํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ์—†๋‹ค.

 

 

#2.10 Recap II

 

<object>

const Player = {
  name:"hayeon",
  age:23,
}

// object ์ถœ๋ ฅ
console.log(Player);

// object ๋‚ด์˜ property ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ
Player.name="kimHaYeon";
console.log(Player.name);

// object์— ์ƒˆ๋กœ์šด property ์ถ”๊ฐ€ ๊ฐ€๋Šฅ
Player.job="๋ฐฑ์ˆ˜";
console.log(Player);

 

function์€ ์œ„์—์„œ ์ด๋ฏธ ์ •๋ฆฌํ–ˆ์œผ๋ฏ€๋กœ ์ƒ๋žต,

 

<function์œผ๋กœ ๊ณ„์‚ฐ๊ธฐ ๋งŒ๋“ค๊ธฐ>

const calculator = {
  plus: function (a, b) {
    console.log(a + b);
  },
  minus: function (a, b) {
    console.log(a - b);
  },
  multiple: function (a, b) {
    console.log(a * b);
  },
  divide: function (a, b) {
    console.log(a / b);
  },
  square: function (a, b) {
    console.log(a ** b);
  },
  rest: function (a, b) {
    console.log(a % b);
  },
};

calculator.plus(34, 23);
calculator.minus(54, 66);
calculator.multiple(22, 12);
calculator.divide(88, 22);
calculator.square(5, 5);
calculator.rest(834, 98);

 

 

#2.11 Returns 

 

์œ„์—์„œ ๋งŒ๋“  ์˜ˆ์ œ๋Š” ๋ถ„๋ช…ํžˆ ๊ฐ’์„ ์ถœ๋ ฅํ•ด์ฃผ์ง€๋งŒ ์‹ค์ œ๋กœ ํ™”๋ฉด์— ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” console.log์ด๋‚˜ alert๋กœ๋Š” ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๋‹ค.

 

const calculator = {
  plus: function (a, b) {
    alert(a + b);
  },
};

console.log(calculator.plus(987, 324));

์‹ค์ œ๋กœ ๊ฒฐ๊ณผ ๊ฐ’์„ ๋ฐ›๊ฑฐ๋‚˜ ํ™”๋ฉด์— ์ถœ๋ ฅํ•  ์ˆ˜ ์—†์œผ๋ฉฐ, ๊ทธ๋ƒฅ ์ผ์‹œ์ ์œผ๋กœ log๋‚˜ alert๋กœ ์ถœ๋ ฅํ•˜๊ธฐ๋งŒ ํ•œ๋‹ค.

 

function์˜ ๊ฒฐ๊ณผ ๊ฐ’์„ ๋ฐ›๊ธฐ ์œ„ํ•ด์„œ๋Š” return ๊ฐ’์„ ์ค˜์•ผ ํ•œ๋‹ค.

 

const age = 23;

function calculateKrAge(ageOfForeigner){
  return ageOfForeigner + 2;
}
// return ๊ฐ’์ด ์žˆ๋‹ค๋ฉด, ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ๊ทธ ๊ฒฐ๊ณผ๋Š” return ๊ฐ’์œผ๋กœ ๋Œ€์ฒด๋œ๋‹ค.
const KrAge = calculateKrAge(age);

console.log(KrAge);

 

return ๊ฐ’์€ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ–ˆ์„ ๋•Œ์˜ ๊ทธ ๊ฒฐ๊ณผ๊ฐ’์ด๊ณ , ์œ„ ์ฝ”๋“œ๋Š” ๊ฒฐ๊ณผ์ ์œผ๋กœ 25๋ฅผ ์ถœ๋ ฅํ•  ๊ฒƒ์ด๋‹ค.  

 

const age = 23;
function calculateKrAge(ageOfForeigner){
  ageOfForeigner + 2;
  return "hello";
}

const KrAge = calculateKrAge(age);
console.log(KrAge);

 

return๊ฐ’์€ ๋ง ๊ทธ๋Œ€๋กœ ๊ทธ ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ ๊ฐ’์„ returnํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์œ„ ์ฝ”๋“œ์—์„œ๋Š” "hello"๊ฐ€ ์ถœ๋ ฅ๋  ๊ฒƒ์ด๋‹ค. 

์ฆ‰ ํ•จ์ˆ˜ calculateKrAge์˜ ๋ฐ˜ํ™˜๊ฐ’์„ ์ €์žฅํ•œ KrAge์˜ ๊ฐ’์€ ๊ทธ๋ƒฅ "hello"๊ฐ€ ๋˜๋ฉฐ, ์ด๋ฅผ ์ฝ˜์†”์— ์ถœ๋ ฅํ•  ๊ฒƒ์ด๋‹ค.

 

 

์ด return ๊ฐ’์„ ์ด์šฉํ•ด ์œ„์—์„œ ๋งŒ๋“  ๊ณ„์‚ฐ๊ธฐ ์ฝ”๋“œ์—์„œ ๊ณ„์‚ฐ ๊ฒฐ๊ณผ๊ฐ’์„ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆ˜์ •ํ•œ๋‹ค.

 

const calculator = {
  plus: function (a, b) {
    return a + b;
  },
  minus: function (a, b) {
    return a - b;
  },
  multiple: function (a, b) {
    return a * b;
  },
  divide: function (a, b) {
    return a / b;
  },
  square: function (a, b) {
    return a ** b;
  },
  rest: function (a, b) {
    return a % b;
  },
};

calculator.plus(2, 3); // console์— ๋‹น์—ฐํ•˜๊ฒŒ ์•„๋ฌด๊ฒƒ๋„ ๋œจ์ง€ ์•Š๋Š”๋‹ค.

// ------------------------------------------------------------------

const plusResult = calculator.plus(2, 3);
const minusResult = calculator.minus(plusResult, 10);
const multipleResult = calculator.multiple(10, minusResult);
const divideResult = calculator.divide(multipleResult, plusResult);
const squareResult = calculator.square(divideResult, multipleResult);

console.log(plusResult);
console.log(minusResult);
console.log(multipleResult);
console.log(divideResult);
console.log(squareResult);

 

ํ•ด๋‹น return ๊ฐ’์„ ๋ฐ›์€ ๋ณ€์ˆ˜๋“ค๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‹ค๋ฅธ ํ•จ์ˆ˜์˜ ์ธ์ž๊ฐ’์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜๋„ ์žˆ๋‹ค. 

 

'javascript > ๋ฐ”๋‹๋ผ JS๋กœ ํฌ๋กฌ ์•ฑ ๋งŒ๋“ค๊ธฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

DAY 8  (0) 2023.01.03
DAY 5  (0) 2022.12.30
DAY 4  (0) 2022.12.30
DAY 2  (1) 2022.12.28
DAY 1  (0) 2022.12.27