TIL

240724

playhong 2024. 7. 25. 08:51

FACTS(사실, 객관) : 내가 한 일

실습문제를 풀었다. 풀면서도 이해 안되는 문제가 있었는데 

 

문제 2

  • 자기 자신을 소개하는 객체입니다.
  • 이름, 나이, MBTI 세 가지 키와 값이 포함되어 있어야 합니다.
  • 콘솔 창에 이름, 나이, MBTI가 나오도록 console.log() 를 찍어보세요.

 

const gilldong = {
    // 조건을 충족하는 코드 작성
    name: "홍길동",
    age: 50,
    mbti: "INTP"
};

console.log(gilldong[name]);
console.log(gilldong[age]); //''로 안감싸면 undefined가 뜸
console.log(gilldong[mbti]);

 

이렇게 작성하니  undefined가 뜨는것

const gilldong = {
    // 조건을 충족하는 코드 작성
    name: "홍길동",
    age: 50,
    mbti: "INTP"
};

console.log(gilldong['name']);
console.log(gilldong['age']); //''로 안감싸면 undefined가 뜸
console.log(gilldong['mbti']);

 

이렇게 name,age,mbti에 `' '`로 감싸니 정상적으로 동작함

 

문제4

 

연산자와 함수, 조건문을 토대로 계산기 함수를 하나 만들어 보려고 합니다. 함수에 숫자 , 연산자 , 숫자 세 개의 매개변수를 넣었을 때 해당 연산자를 기준으로 연산을 해서 값을 반환하는 함수를 만들어주세요.

function calculate(a, b, c) {
    // 코드를 작성해주세요.
    if(b = "+"){
        return a + c;
    }else if(b = "-"){
        return a - c;
    }else if(b = "*"){
        return a * c;
    }else if(b = "/"){
        return a / c;
    }
}

calculate(3, "+", 6); // 결과값 9
calculate(11, "-", 6); // 결과값 5
calculate(6, "*", 3); // 결과값 18
calculate(15, "/", 3); // 결과값 5

 

이렇게 답을 제출했고 에러가 남

 

이유는 비교연산자를 써야할 자리에 할당연산자를 썼기 때문

 

function calculate(a, b, c) {
    // 코드를 작성해주세요.
    if(b == "+"){
        return a + c;
    }else if(b == "-"){
        return a - c;
    }else if(b == "*"){
        return a * c;
    }else if(b == "/"){
        return a / c;
    }
}

calculate(3, "+", 6); // 결과값 9
calculate(11, "-", 6); // 결과값 5
calculate(6, "*", 3); // 결과값 18
calculate(15, "/", 3); // 결과값 5

 

피드백을 받고 할당연산자를 비교연산자로 수정했는데 "=="연산자는 지양해야 한다는 피드백을 받음 

function calculate(a, b, c) {
    // 코드를 작성해주세요.
    if(b === "+"){
        return a + c;
    }else if(b === "-"){
        return a - c;
    }else if(b === "*"){
        return a * c;
    }else if(b === "/"){
        return a / c;
    }
}

calculate(3, "+", 6); // 결과값 9
calculate(11, "-", 6); // 결과값 5
calculate(6, "*", 3); // 결과값 18
calculate(15, "/", 3); // 결과값 5

 

수정 후 통과

 

+2주차 강의 꼼꼼하게 듣고 개인과제시작


FEELINGS(느낌, 주관) : 나의 감정적인 반응, 느낌

이게 왜 오답이지

이게 왜 아니지

그게 그거 아냐?

이해가 안돼서 gpt에 같은 질문만 5번정도 한거같다. (직접적으로 정답을 물어보진x)


FINDINGS(배운 것) : 그 상황으로부터 내가 배운 것, 얻은 것

1. 점표기법/대괄호표기법

문제 2는 표기법을 올바르게 수정해 해결했는데, 

점표기법 : gilldong.age

대괄호 표기법 : gilldong['age']

<= 올바른 표기법이고 ,

대괄호 표기법에서 age를 ''로 감싸지 않으면 age를 속성이 아닌 변수로 해석해서 undefined가 뜨는것. 

 

2. 할당연산자/비교연산자

if(b = "+") <= 에서 "b는 +다" 라고 b에 "+"를 할당하는 것이 아니라

"b가 "+"와 같으면~" 라고 써야 하니까 b가 +와 같은지 비교할 수 있는 비교연산자 (==/===)를 사용하는게 맞음.

근데 ==와 ===중에서도 ==를 지양해야 하는 이유는 

== : 값만 비교

=== : 값과 타입을 비교

해서 더 엄격하게 같음을 비교할 수 있고

==연산자는 원치않는 값이 발생할 수 있으며 판별이 어려우니 가능한 ===연산자를 사용하는걸 권장한다고 한다.


FUTURE(미래) : 배운 것을 미래에는 어떻게 적용할 지

올바른 표기법 사용하기

할당연산자와 비교연산자를 제대로 구분하여 사용하기

 

 

 

'TIL' 카테고리의 다른 글

240726  (0) 2024.07.27
240725  (0) 2024.07.26
240723  (0) 2024.07.23
240722  (0) 2024.07.22
240719  (0) 2024.07.19