-
200907_TIL오로지 개발/TIL 2020. 9. 8. 01:02
오늘(까지) 배운 것
자료구조에 대해 배웠다.
스택, 큐, 해시 테이블, 연결 리스트, 그리고
그래프, 트리, 이진 탐색 트리까지
자료구조에 대해서는 따로 정리를 하고☺
알게 된 간단하지만 유용한 것들을 꼭 기록하고 싶었다.
1) !!의 사용
!은 보통 'NOT'의 의미로 쓰이는 기호인데
!!를 사용하면 'NOT'의 'NOT'이니까 결국 truthy한 값이 나오게 된다.
그럼 왜 굳이 두 번을 써야 하는 걸까?
I. undefined 값을 처리해주기 때문..!!
II. 값을 boolean 타입으로 리턴해준다.
평소 같았으면 findKey1 함수를 실행했을 텐데, 이제는 바로 return 할 수 있다.
2) || 의 재발견
OR를 뜻하는 || 논리 연산자는 이제까지 조건문에 &&(and) 조건과 더불어 유용하게 사용했다.
그런데 이렇게도 사용할 수 있더라.
3) 호이스팅과 변수 키워드
let과 const 그리고 var에 대해서 알고 있다고 생각했는데(...왜케 알고 있다고 생각한 게 많아)
새로 알게 된 것들과 함께 확실히 정리해두기 위해..☺
호이스팅(hoisting)은 끌어올린다 라는 의미로, 자바스크립트가 실행되는 시점에 선언된 변수와 함수를 상단으로 이동시키는 것을 의미한다.
그리고 변수는 총 3단계의 과정을 거쳐 생성된다.
왜 console에서 그렇게 undefined가 나왔는지 알겠,, 그런데 var 키워드로 변수를 만들 경우, 선언과 초기화가 동시에 이뤄진다.
let 키워드로 선언된 변수는 위의 예시처럼 선언 단계와 초기화가 분리되어 진행되기 때문에
초기화 이전에 변수가 접근하려고 하면 ReferenceError가 발생하는 것이다.
다시 말하자면 let으로 선언한 변수는 hoisting이 안 되는 게 아니라
선언할 때 hoisting 되지만, 초기화는 실제 let 이 사용된 코드에서 이뤄지기 때문에(분리)
초기화 이전에 접근하려고 하면 Reference 에러가 발생하는 것.
const는 선언과 동시에 초기화해야 하고(분리불안이 있나 봄)
선언되면 값이 상수화되어서 재할당도 불가하고(고집도 있음)
약간 나 같네
이번 주 할 일
자료구조 블로깅하고, 그림책(hello coding)도 정리하고 싶다.
하고싶다.
제발.
'오로지 개발 > TIL' 카테고리의 다른 글
200909_TIL (0) 2020.09.09 200908_TIL (0) 2020.09.09 200831_TIL (0) 2020.08.31 200821_TIL (1) 2020.08.22 200803-0805_TIL (0) 2020.08.05