오늘은 ES6, 그리고 자바스크립트의 또 다른 문법들을 상당히 강습받았다
JS초기부터 언급해오던 const let var와 그에 따른 호이스팅,
또 호이스팅을 언급하면서의 function의 호이스팅, 그리고 변수에 들어간 function에 대한 호이스팅 등
여러 가지의 유형에 대한 기존의 대한 지식의 확신과 새로운 지식의 대한 골머리를 앓았다
사실 골머리를 앓은 이유는 이 var와 let, const의 차이점에 대해서인데
알고 보니 var라는 녀석 자체가 이질적이었다
이건 직접 자바스크립트를 브레이크 포인트를 주면서 돌리고 알게 된 특성인데
JS특성상 모든 스크립트를 한번 읽고 JS구문들을 실행한다
한번 읽을 때 읽는 부분은 제어자인 var, const, let이었고 그 외에 function, 애로우 함수 정도를 먼저 읽었었다
그러고 나서 TDZ? 개념을 알고 나니 이제 var와 const+let의 차이점을 알게 되었다
함수에 들어가는 내용으로도 알게 되었고.. 머리가 탁 트이는 기분이 정말 좋은 기분이었다
아마 JS를 조금이라도 하고 간 덕 아닐까.. 아니었으면 브레이크포인트를 걸고 실습하는 부분이 없었을 것이고
이해하는데 더 힘들었을 것이 분명하다..
여하튼.. 사실 오늘은 이 부분이 제일 어려웠으며 나머지 부분은 앞서 본 기억이 있고
또한 파이썬과 비슷한 부분이 있어서 그리 어렵지 않게 이해를 할 수 있었다
그리고 오늘 배운 내용을 따지자면 오늘은 거의, 80퍼센트 정도는 모르는 내용이다
예를 들어
reduce, every, some이라는 새로운 기능과
find, findIndex라는 파이썬에서 배열을 제어하는 기능의 비슷한 기능
그리고 JS 미들코스에서 본 spread의 확실한 개념이라던가
그 외 구조 분해 할당 (파이썬의 a=b, b=a 비슷한, JS에서는 배열로 바꿔버리는)
배열 복사 등 여러 가지 내용들을 알게 되었다
reduce를 이해할 때는
자체적으로 가지고 있는 sum값에 해당되는 acc값과
매 배열을 도는 current값, 그리고 추가적으로 current값의 index 값을 인수로 받을 수 있다는 것을 알게 되었고..
(사실 안쓸 것 같다.. 속도 차이가 나지 않는다면 그냥 for 문을 돌릴 것 같다..)
every (모든 참), some (부분 참 == 절대 참)이라는 함수도 알게 되고
(사실 이 부분도 코드 작성의 효율성의 문제이지 원시적 if를 쓰는 것이 내 생각에는 가독성에 더 좋을 것 같다)
find / find index라던가
(이 부분은 파이썬과 대조된다 찾고 나서 바로 값을 반환하는 경우라면 매우 유용하겠으나
대부분 찾는 값은 여러개인 경우가 많으므로.. for 문의 일치성 검사를 행할듯하다 )
include 이 부분은 파이썬의 슬라이싱 ~ JS;find와 비슷한 개념으로 이해했다
big n으로 원하는 값을 찾을 수 있겠지만 그냥 find와 다를 바 없어 보이니 그다지 쓸모없어 보이고..
강사님이 2시간 동안 설명해주신 spread..
사실 이건 프로그래밍을 모른다!라는 사람에게 매우 어려울듯하나
밥 먹듯 파이썬으로 알고리즘을 머리에 넣고 고민하던 나는 그렇게 어렵게 다가와지지도 않았으며
애초에 유튜브에서 스프레드 구문에 대한 강의를 먼저 본 탓인가.. 그렇게 어렵게 다가오지 않았다
그 외로는 개념적으로 구조 분해 할당이라던가 (위 언급대로 a=b, b=a) 배열 복사 등등은 그리 어려운 내용은 아니었다
이렇게 적고 보니 파이썬을 정말 열심히 한 느낌이 든다
아마 최대한 효율적.. (이라고 쓰고 게으르다고 적는다 )으로 문제를 풀기 위한 내 노력이..
JS를 배우면서 개념적 이해를 도와주게 된듯하며..
또한 사고 자체를 코드에 익숙하게 만들어 JS구문에 대한 이해를 더 빠르게 만들어준 듯하다..
하여간..
JS는 파면 팔수록 매우 싫어진다..
너무 애매하다... 다들 쓰면서 TS로 넘어가는 이유를 매우 절실히 느낀다..
여하튼 오늘 강습은 매우 알차면서 매우 방대하며,
오늘 이렇게 장문으로 쓸 만큼 매우 많은 내용, 새로운 내용, 그리고 남겨야 할 듯한 내용들이었다
내일부터 promise구문이라는데.. 더욱더 집중하여 들어야겠다
'일기장 > 국비학원' 카테고리의 다른 글
::5-20 국비학원 일지 16일차 - ES6 (3) - 이터레이터, 제너레이터, etc .. (0) | 2022.05.21 |
---|---|
::5-19 국비학원 일지 15일차 - ES6 (2) - 프로미스, etc .. (0) | 2022.05.20 |
::5-17 국비학원 일지 13일차 - 실습 (0) | 2022.05.18 |
::5-13 국비학원 일지 11일차 - jQuery 맛보기 (0) | 2022.05.14 |
::5-12 국비학원 일지 10일차 - JS 찐마무리 (0) | 2022.05.13 |