문제 풀이에 대한 이해도를 높이기위해
작성되는 내용들 살펴보도록하자
배열을 조건에 맞게 정렬하는 예제를 보자
순서는 array의 맨 뒤의 요소 부터 맨 앞의 요소까지 순차적으로 이루어져야 한다.
unshift() 와
push() 메서드로 코드를 진행했다
여기서 의문이 생겼던 부분은
함수 표현식안에 선언된 let result = [] 부분이
함수 스코프가 아닌 전역으로 빠져있다면? 같은 값인데
미션이 클리어 되진 않았다고 한다.
이는 es6 문법에서 추가된 let & const의 스코프를 알아야한다.
그래서 바깥으로 선언하게되면
값이 새롭게 할당되어 질수 있는것이 아니라
for문이 돌면서 할당되어야 할 숫자들이 담기지않고 !
ReferenceError가 발생하게 되어서 찾아보았는데
개발자도구에서는 실행된다.
하지만 레플릿에서는 실행은 되지만 통과는안된다
이유를 찾아봤더니 좀 더 엄격한 모드에서 진행이 되어서 오류가 났던것인데
함수안에서의 사용을 우선순위 한것이다
es6 이전 까지 많이 사용되었던 키워드 var 는 전역스코프라서 매우 위험했다
참조값을 찾을려고했을때 많은 오류를 범하게 만들었는데;
es6 문법이 나온 지금 지역변수 스코프인 let,const 를 사용하게됐다
자바스크립트의 동작원리를 알고싶다면 !
(맹기완님의 자바스크립트 강의를 추천한다)
❗️어디서든 접근이 가능하다면 얼마나 많은 양의 데이터를 제어해야할까 ?
또는 원하는 값을 참조하고싶을때 원하는 값을 타겟팅 하지 못한다면?
얼마나 힘든 코딩이 될것인가 ?
전역 변수에 객체를 담아서 사용하기!
방대한 내용을 적는것보단
당시 직면했던 문제들과 의문을 조금씩 풀어풀어 나가는게
좋은 방법이라고 생각한다.
이미 다른 누군가가 잘정리해놓은 내용들이 너무도 많고, 잘 기술 되어 있기때문에
내 블로깅은 의문점이나,내가 생각한 위주의 내용들과
해결방법등을 적어놓는것이 좋은것같다.