2023. 4. 11. 01:57ㆍ개발일기
오늘의 학습 내용
- 알고리즘 마라톤
- 자바스크립트 동작 원리
새로운 배움
- 지수 표현식의 함정
- 자바스크립트 실행 컨텍스트
문제
코딩테스트 문제 중 문자열을 다루어야 하는 문제가 있었다.
특정 문자열이 주어질 때, 해당 문자열의 길이와 문자열의 구성문자들이 모두 숫자인지 확인하는 문제였다.
자바스크립트 묵시적 형변환을 통해 해당 문자열 전체를 임의의 숫자로 나누어 나누어 지면 숫자로 판단하려 하였다.
문자열은 임의로 생성되므로 다양한 경우의 수가 있는데 특정 조합의 경우 앞파벳 문자가 포함되어 있더라도 숫자로 인식하고 나누기가 정상적으로 수행되었다.
시도
묵시적 형변환의 문제라고 생각하고 명시적으로 Number()
, isNaN()
를 사용해 숫자로 형변환을 시도 하였다.
하지만 묵시적 형변환에서 형이 변환 되는 케이스인데 명시적으로 형변환 한다고 해서 형이 변환이 안될 리가 없었다.
해결
문자열 전체를 기준으로 숫자, 문자 여부를 판단하는 것이아니라 해당 문자열의 문자를 하나하나 확인하는 방식으로 풀었다.
느낀점
늘 다양한 테스트 케이스를 고려해야겠다고 생각했다
관련 작성글
[STUDY/ALGORITHM] - 문자열 다루기 기본
자바스크립트 실행 컨텍스트
관련 작성글
[CONCEPT/HTML+CSS+JS] - [JS] 자바스크립트 Execution Context 실행컨텍스트
느낀점
자바스크립트의 동작 원리를 추상적으로 자바스크립트는 쭉 스캔하면서 변수를 일단 다 선언하고 시작한다.
정도로만 알고 있었는데 실행컨텍스트에 대해 알게 되어서 추상적으로 알고있던 내용들을 정리 할 수 있는 시간이 되었다.
에러는 다 같은 에러라고 생각했는데 값이 단순히 undifiend로 나타나는 것과 ReferenceError는 명확히 다르단 것을 실행컨텍스트를 공부하면서 알게 되었다.
참고
[10분 테코톡] 💙 하루의 실행 컨텍스트
JavaScript Execution Context – How JS Works Behind The Scenes
'개발일기' 카테고리의 다른 글
[TIL] 23.04.12. (0) | 2023.04.12 |
---|---|
[TIL] 23.04.11. (0) | 2023.04.11 |
[TIL] 23.04.08. (0) | 2023.04.08 |
[TIL] 23.04.07. (0) | 2023.04.07 |
[WIL] 23.04.03. - 23.04.06. (0) | 2023.04.07 |