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(미래) : 배운 것을 미래에는 어떻게 적용할 지
올바른 표기법 사용하기
할당연산자와 비교연산자를 제대로 구분하여 사용하기