나 어제 네시간밖에 못잤다
나도 힘들다
(사실 지각해서라도 더 자고 싶었는데
평소보다 일찍 깼다
불행, 먼 곳에 있지 않습니다.)
어제의 이야기
어제 공부한 것
문제 못 풀었음...
그런 사연이 있었음 아무튼
숫자 야구,
로또 추첨기,
가위바위보 게임,
반응 속도 테스트,
틱택토 까지 진행.
이후 저녁에는 Node js 책을
전반적으로 훑는데
사실 사용법~에 가까워서 뭐가 있는지는 대충 알아도
직접 한번 짜봐야할 것 같아서 Node 필기는 아직 안 적겠음.
끝말 잇기
- 내가 그때그때 넣은 textContent를 일종의 buffer처럼
비교하는 값으로 사용 가능.
- 입력을 끝낸 칸은 비워주고, focus()로 커서를 위치시키기 가능.
- 순서도의 절차를 고려해서 줄여보자.
먼저 비교하고 싶은걸 같은 조건문이어도 앞에 넣기.
계산기
- 계산하는 순서에 따라 변수가 각각 어떤 상태인지 확인해서 조건문을 세워보기.
- 일부만 다른 함수는 고차함수로 해결 가능.
인자를 받게 해서 인자에 따라 다르게 반응하게 설계.
물론, 인자 자체들의 공통 속성 하나로 표현이 가능하다면 간소화하자.
- 중첩 if문을 최대한 줄이자.
1 if문 다음에 나오는 공통 절차를 모든 분기점 끝에 넣어준다.
2 짧은 내용을 가진 분기점을 맨 앞에 놓는다.
3 짧은 내용을 가진 분기점이 끝나면 return, break 등으로 멈춘다.
4 else 문을 제거한다...
항상 모든 중첩이 나쁜 것은 아니지만 3중첩까지는 가지말자.
- eval 함수로 간단히 문자열 -> 연산자 변형도 가능하지만
문자열을 잘 입력하면 내부 함수를 호출하는 코드가 될수 있어서
악용 당할 여지가 높음.
숫자 야구
- 무작위 숫자를 중복되지 않게 뽑는 방법은,
뽑고자 하는 범위의 배열을 만들어 랜덤한 인덱스로 뽑는 것.
- return alert는 false로 처리됨.(undefined라.)
- Set안에 배열을 넣어서 중복을 제거.
- HTML 자체에서 검사하는 것도 가능함.
- 배열을 문자열로 만들면 .join()
- .indexOf()로 반환 여부로 존재하는지,
위치가 일치하는지 한번에 확인 가능.
로또 추첨기
- 배열내 숫자 범위 확인은 .find()로 안에 콜백 함수로 비교 가능.
- .className = '값'으로 .값 으로 지정해놨던 CSS 적용 가능.
- setTimeOut 은 async, await로 Promise로 setTimeoutPromise라는 객체를 만들어 간소화 가능.
- 일치 갯수만 확인한다면 forEach로 count를 세서 count 갯수만 세면 된다.
- alert()가 화면보다 먼저 실행된다면 비동기 함수를 하나라도 사이에 추가하기.
- 클릭을 막고싶다면, clickable같은 bool을 sema처럼 쓴다.
가위바위보 게임
- 이미지 요청 횟수를 줄이는 이미지 스프라이트.
하나의 이미지를 부르고 잘라서 띄우되,
필요하면 좌표값을 이동하는 방식.
.background ='url() x y' 같은 식으로 가능.
- 승패를 판단하는 방식이 복잡하다면,
그걸 다 쓰는 것도 물론 방법이지만,
모든 경우의 수를 표로 써서 숫자화하여 범위를 정하는 방법도 있음.
반응 속도 테스트
- 지금의 시간은 startTime =new Date();
- 평균을 구하기 위해 누적값을 구하는 .reduce() 사용 가능
- 상위 몇개를 고른다면 .sort후 .slice,
그리고 각각을 forEach로 값들을 뽑아 HTML 요소로 만듦.
틱택토
- 클릭 이벤트를 태그마다 넣어줄 수도 있지만,
그냥 부모 태그에 넣고(버블링이 일어나므로) event.target으로 찾을 수도 있음.
- (난 아직도 rowIndex와 cellIndex는 잘 모르겠다)
- 2차원이면 forEach를 두번 해서 요소를 확인할수도 있고,
.flat().every(() => ..) 등으로도 확인 가능.
소감
나름 코드를 다 써보긴 했지만
쭉 보니 다시 한번 백지에서 써보는게
좋을거같긴 하네...
오늘의 계획
변경 사항 및 일정
내일은 랜덤런치네
인원 확인하다 깨달음
나... 오늘 식권 안 챙겨왔어
오후 6시 스터디.
오전
TIL은 적었으니까
텍스트 롤플레잉 게임....써봐야지
낮
텍롤겜 마저하고
게시판 쫌 해보고
스터디 준비하고
스터디 하고
저녁
게시판이 어느정도 됐다면
자바스크립트를 또 실습 과제 보고
알고리즘 풀기
오늘의 다짐
목이 잔잔히 아픈데 또 그 이상은 아니고
쉽지 않네
잘 수 있는게 가장 좋은데......