본문 바로가기

딥다이브

[TIL]JS스터디- 스코프,전역 변수의 문제점, let/const 키워드와 블록 레벨 스코프 1. 스코프 식별자의 유효 범위를 의미하며, 식별자를 검색할 때 사용되는 규칙을 의미한다. const a = 1; const f1 = () => { const a = 3; f2(); }; const f2 = () => { console.log(a); // ? }; f1(); 위의 실행결과로 어떤값이 출력될까? 정답은 3이 아닌 1이 출력되는데, 이유로는 자바스크립트는 함수를 어디서 호출했는지에 따라 함수의 상위 스코프가 결정되는 동적 스코프가 아닌, 정의를 어디서 했는지에따라 함수의 상위 스코프를 결정하는 렉시컬 스코프를 따르기 때문이다. 2. 전역 변수의 문제점 스코프 체인상의 종점에 위치하기 때문에 변수를 검색할 때 가장 마지막에 검색된다. 따라서 참조에 있어 지역변수에 비해 느리다. 3. let/c.. 더보기
[TIL]JS스터디- 객체리터럴,원시값과 객체의 비교,함수 기존엔 주2회로 1회당 30~40페이지를 기준으로 분량을 정했었는데 서로가 일정이 바쁜상황이 발생하여 어쩌다 2회분량을 한번에 진행했었는데 괜찮은것같아 이번주부터 분량은 그대로하고 만나는 횟수를 1회로 줄여서 진행하자고 했다. 주2회를 볼때보다 일정관리가 더 편한것같긴하지만 준비를 한번에 몰아서 할까봐 걱정이다..(이번이 변경된이후 처음이였는데 몰아서해버리긴했다..ㅋㅋ) 각 단원은 제목과같다. 객체. 주로 객체의 프로퍼티를 접근하는방식, 객체내의 프로퍼티를 정의하는 방식에대해서 문제를 많이 작성해주셨다. 객체 프로퍼티 키로 사용될 수 있는 값의 형태가 문자열과 심볼형으로 주어지고, 문자열의 경우 식별자 네이밍 규칙을 준수해야 의도하지 않은 에러를 방지할 수 있는점을 알게되었다. 그렇다고 식별자규칙을 적용.. 더보기
[TIL] JS스터디-promise 왜 Promise로 비동기를 관리하려는가. promise는 js에서 비동기 상황을 효율적으로 처리하는 데 사용되는 개념이다. 효율적이라는 말은, 기존에 비동기 상황을 다루기위해선 콜백 함수를 전달하여 비동기 결과값을 사용할 수 있었다. 이렇게 되면 비동기 결과값을 연속적으로 사용하려면 콜백 함수를 계속 전달하게 되어 뎁스가 깊어지고, 코드를 읽는 방식이 아래에서 위로 읽히게 되어 가독성이 떨어지는 문제가 발생한다. 또한 에러 핸들링관련해서도 콜백 함수마다 try catch문을 내부에서 작성해줘야 하기 때문에 코드 자체가 복잡해지는 문제가 발생한다. try { setTimeout(() => { throw new Error("error"); }, 1000); } catch (error) { console.l.. 더보기