프론트엔드 개발일지 #14 - 함수 (표현식 연습)

조아라·2024년 10월 14일
1
post-thumbnail

함수표현식 연습

숫자의 제곱을 반환하는 함수를 정의하세요. 함수를 함수 표현식으로 정의하고 square라는 이름의 변수에 저장하세요. 참고: 유데미의 코딩 연습 플랫폼은 ** 연산자를 지원하지 않습니다.

square(4) //16
square(3) //9

const square = function (num) {
    return num * num;
}

내가 풀이 한 방식은 이것이고, 다른 풀이 방식은

const square = function (num) {
  return Math.pow(num, 2);
}

이렇게 Math.pow를 사용한 방식도 있었다.

메서드 연습

square의 기하학적 구조와 관련된 메서드를 보유할 'square'라는 이름의 오브젝트를 정의하세요.이 오브젝트는 area와 perimeter라는 두 가지 메서드를 포함해야 합니다.

area는 한 변의 길이(square에서는 모든 변의 길이가 동일)를 받은 다음 해당 변의 길이를 제곱한 값을 반환해야 합니다.

perimeter 는 한 변의 길이를 받아 해당 변의 길이에 4를 곱한 값을 반환해야 합니다.

square.area(10) //100
square.perimeter(10) //40

const square = {
    area(num) {
       return num * num;
    },
    perimeter(num) {
       return num * 4;
    }
}
square.area(4)
aquare.permeter(2)

내 풀이는 이렇다. 그런데 num으로 매개변수 이름을 준 걸 고쳐야 한다는 생각이 들었다.


const square = {
  area(side) {
    return side * side;
  },
  perimeter(side) {
    return side * 4;
  }
}

side라고 주게 되면, 아무래도 뜻을 해석하기에 용이 할 거라는 생각이 들었다. 정말로 변수 이름 짓는게 제일 어려운 것 같다. 나만 코드를 보는게 아니라 모두가 이해하기 쉽게 변수 이름을 정해야 한다는게 보통일이 아니다.

달걀 낳기 연습

hen이라는 이름의 오브젝트를 정의하세요. 이 오브젝트는 세 가지 속성을 가져야 합니다.

name은 'Helen'으로 설정되어야 합니다.

eggCount는 0으로 설정되어야 합니다.

layAnEgg는 eggCount의 값을 1씩 증가시키고 문자열 "EGG"를 반환하는 메서드여야 합니다. this 키워드를 사용해야 할 것입니다.

hen.name // "Helen"
hen.eggCount // 0
hen.layAnEgg() // "EGG"
hen.layAnEgg() // "EGG"
hen.eggCount // 2

const hen = {
    name: "Helen",
    eggCount: 0,
    layAnEgg() {
        this.eggCount++;
    return "EGG"
    }
};

Try / Catch

hello.toUpperCase() --> error

try {
  hello.toUpperCase();
} catch {
  console.log("ERROR!!!")
} // ERROR!!!

console.log("AFTER!") // AFTER!

여라가지 이유로 오류가 발생하는데 그럴 때, try/catch를 사용한다.
하나의 예를 더 보자면,

function yell(msg) {
  console.log(msg.toUpperCase().repeat(3));
}
// 이 코드를 실행시 문자열은 제대로 반환되나, 다른것은 오류가 난다
// try / catch를 사용해보자
function yell(msg) {
  try {
  console.log(msg.toUpperCase().repeat(3));
  } catch(e) {
    console.log(e);
    console.log("Please pass a string next timw!");
  }
}
// 이렇게하면 문자열을 입력하라고 나온다.

비동기 함수를 다룰 때 더 자세히 공부 할 수 있게 된다. 이처럼 try 중괄호 안에서 오류가 나면 cstch로 잡아 낼 수 있다.

profile
끄적 끄적 배운 걸 적습니다 / FRONT-END STUDY VELOG

0개의 댓글