TIL

TIL

[TIL] 230324

230323 - 자바스크립트 딥다이브 12장 함수 스코프란 식별자가 유효한 범위(다른 코드가 식별자 자신을 참조할 수 있는 범위)를 의미하고, 자바스크립트 엔진이 식별자를 검색할 때 사용하는 규칙이다. var 키워드로 선언한 변수는 같은 스코프 내에서 중복 선언이 허용되고, let이나 const로 선언된 변수는 허용하지 않는다. 변수는 자신이 선언된 위치에 의해 스코프가 결정된다. 전역에 변수를 선언하면 전역 스코프를 갖는 전역 변수가 되고, 어디서든지 참조할 수 있다. 지역에 변수를 선언하면 지역 스코프를 갖는 지역 변수가 되고, 지역 변수는 자신의 지역 스코프와 하위 지역 스코프에서 유효하다. 스코프 체인: 스코프가 계층적으로 연결된 것 자바스크립트 엔진은 스코프 체인을 통해 변수를 참조하는 코드의 ..

TIL

[TIL] 230322

몇 달 전 진행한 프로젝트에서 api 호출 시 사람마다 안되는 경우가 있었는데 그 이유를 몇 주 동안 못 찾다가 드디어 찾았다. 내가 구현한 자동 로그인과 관련이 있었다...!! 자동로그인 버튼 클릭 후 로그인했을 때 사용자의 정보를 로컬스토리지에 저장했고, 그냥 로그인이면 세션스토리지에 저장을 했다. 로그인하기 전에 먼저 카페24에서 앱을 실행할 때 받아오는 params에서 mallId를 세션 스토리지에 저장을 해놨다. 그래서 만약 params에서 못 받아왔을 경우를 위해 세션 스토리지에 있는 mallId가 null인지 체크 후, null이면 서버에 로그인 요청 시 받아온 유저 정보 mallId를 다시 스토리지에 넣는 작업을 했었다. 원래는 if (window.sessionStorage.getItem(..

TIL

[TIL]230321 - JavaScript 함수, setTimeout 함수

deep dive 12장 함수 오늘은 deep dive 12장-함수를 정리했다. 그 중 핵심 내용을 정리하자! 🌟 함수 이름은 함수 몸체 내에서만 참조할 수 있는 식별자다 -> 함수를 호출할 때는 함수 객체를 가리키는 식별자를 사용해야 한다. 함수를 정의하는 방식은 4가지가 있는데, 그 중에서 함수 선언문이랑 함수 표현식의 차이를 정확히 알자 함수 선언문 함수 이름을 생략 할 수 없다. 표현식이 아닌 문이므로 변수에 할당할 수 없다. 자바스크립트 엔진은 코드 문맥에 따라, 즉 값으로 평가되어야 하는 문맥인지 확인하고 동일한 함수 리터럴을 함수 선언문으로 해석하는 경우와 함수 리터럴 표현식으로 해석한다. 자바스크립트 엔진은 런타임 이전에 함수 선언문을 해석해 함수 객체를 생성한다. 이때 생성된 함수를 호출..

TIL

[TIL] 230320- 자바스크립트 제어 흐름, Promise

자바스크립트 제어 흐름 자바스크립트는 다른 멀티스레드 프로그래밍 언어(java, c++...)와 다른 방식으로 비동기 동작 처리 하나의 메인 스레드로 구성된다. 메인 스레드는 코드를 읽어 한 줄씩 실행한다. 메인 스레드: 브라우저 환경에서 유저 이벤트를 처리하고 화면을 그린다. (브라우저 렌더링, 자바스크립트 실행) 동기적 제어 흐름 현재 실행 중인 코드가 종료되기 전까지 다음 줄의 코드를 실행하지 않는 것을 의미한다. 분기문, 반복문, 함수 호출 등이 동기적으로 실행된다. 코드의 흐름과 실제 제어 흐름이 동일하다. 싱글 스레드 환경에서 메인 스레드를 긴 시간 점유하면 프로그램을 멈추게 한다. 비동기적 제어 흐름 현재 실행 중인 코드가 종료되기 전에 다음 라인의 코드를 실행하는 것을 의미한다. 프로미스,..

ssohyunn
'TIL' 카테고리의 글 목록