숫자의 제곱을 반환하는 함수를 정의하세요. 함수를 함수 표현식으로 정의하고 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"
}
};
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로 잡아 낼 수 있다.