주로 복습한 내용은 '변수와 자료'형과 '조건문'이다.
복습을 하자 저번에 막혔던 문제들도 이미 해결법을 알아서인지 순조롭게 모든 문제들이 해결됬다.
또한 저번에는 단지 문제 해결에만 급급해 조건과 결과만을 봤기 때문에 놓쳤지만
많은 수의 문제들이 '대놓고' 계산기를 만드는 법에 대해 설명해 주고 있었다.
표시기능(숫자,기호), 입력기능(숫자, 기호), 계산기능(덧셈, 뺄셈, 곱셈, 나눗셈)등으로 그 중에서 표시, 계산까지는 배운 내용으로 해결할 수 있었다.
이제 추가적으로 꾸미기(CSS)와 각 버튼에 기능을 부여(JavaScript)를 보충하면 계산기가 나올 것 같고 어떤 기능들이 필요한지 유추할 수 있어 다음주 공부는 더 집중되고 재미있을 것 같다.
다만 단순히 사칙연산 뿐만 아니라 추가적인 기능(num1만 제공시 처리 규칙, **2, √, % 등)에도 신경을 써서 좋은 계산기를 만들 욕심이 생겨 계산기들을 비교해서 장점만 뽑아내야할 것 같다.
문제가 모두 풀려 Reference를 하나도 참고하지 않고 풀었고 시간에 쫓겨 그대로 넘어가버렸는데 이게 얼마나 큰 문제인지를 복습하다 알게되었다.
저번의 시간복잡성에 대한 글을 보고 이런 부분에서는 어떻게 해결하는게 더 우수한지를 비교하고자 눌렀는데 굳이 하지 않아도 되는 방식으로 처리해서 비효율적인 부분들에 대해 반성하는 시간을 가지게 되었다.
새로 배우거나 정리한 내용으로는
1. if문들을 여러개를 써도 상관없지만 else if를 사용하지 않으면 맨 아래의 if문이(범위별 지정 처리 등 체로 거르는 작업에서는) 최종적으로 처리되므로 주의해야 한다.
예시)
if (score >= 90) {
grade = 'A';
} else if (score >= 80) {
grade = 'B';
} else if (score >= 70) {
grade = 'C';
} else if (score >= 60) {
grade = 'D';
} else if (score >= 0) {
grade = 'F';
}
console.log(80)= B
---------------------------------
if (score >= 90) {
grade = 'A';
} if (score >= 80) {
grade = 'B';
} if (score >= 70) {
grade = 'C';
} if (score >= 60) {
grade = 'D';
} if (score >= 0) {
grade = 'F';
}
console.log(80)=F
---------------------------------
2. let이 아닌 const를 Reference에서 사용해서 그 이유에 대해서 생각해보니
지금은 단순히 하나의 동작만을 테스트 하기 때문에 문제가 없지만 계산 공식등은 상수로 지정하지 않고 처리 시
큰 프로젝트 또는 협업에서 중복되는 이름설정시 서로 충돌이 날 수 있다 (상수지정시에는 지정이 안되서 발견이 쉬울 것)
3.현재 시간에 1초를 더해서 출력하는 문제는 시분초, 분초, 초를 거르는 방식으로 3가지 타입의 결과를 내보냈지만
초 체크, 분체크, 시체크를 해서 순차적으로 증가시킨 후 하나의 결과값만을 보내는 방식이 더 간결하고 이해하기 쉬웠다.
간결하면서도 이해하기 쉬운 방식으로 작성하는 연습을 더 해야겠다.
4. 세미콜론이 삽입 된 경우 또는 되지 않은 경우등 여러가지 일들이 있고 또한 처리에는 전혀 지장이 없는 것을 발견해서 검색을 해보니 세미콜론 자동 삽입(ASI, automatic semicolon insertion)기능이 있기 때문에 사용하지 않아도 된다는 의견, 오히려 쓰면 안된다는 의견, 그리고 마지막으로 새로운 규정이 추가될 예정이니 쓰지 않으면 안된다는 의견도 있어서 일주일차에게는 어려운 것 같다. 아래에 쓰면 오류가 난다는 의견을 첨부하며 세미콜론 이야기를 마친다.
"https://feross.org/never-use-semicolons/" 인용
class Foo {
constructor () {
if (baz) {
return 42; // ok
}; // <– AVOID!
return 12; // ok
}; // <– AVOID!
}; // <– AVOID!
생각보다 복습을 조금밖에 하지 못해 아쉬움이 남는다. 내일은 약속이 없으니 금요일내용까지 빠르게 복습해야곘다.
'회고' 카테고리의 다른 글
| [CSS] 기초 (0) | 2022.05.02 |
|---|---|
| 복습(문자열, 반복문) (0) | 2022.05.01 |
| [HTML] 기초 (0) | 2022.04.29 |
| [JavaScript] 기초 제어문-2 (0) | 2022.04.28 |
| [JavaScript] 기초 제어문-1 (0) | 2022.04.27 |
