📌 You don't know JS와 https://poiemaweb.com/ 를 참고하여 작성한 글입니다.스코프는 참조 대상 식별자(identifier, 변수, 함수의 이름과 같이 어떤 대상을 다른 대상과 구분하여 식별할 수 있는 유일한 이름)를 찾아내기
렉시컬 스코프는 렉싱타임에 정의되는 스코프입니다. 렉싱은 컴파일러 과정 중 첫번째로, 소스코드 문자열을 분석하여 상태 유지 파싱의 결과로 생성된 토큰에 의미를 부여하는것 입니다.프로그래머가 코드를 짤 때 변수와 스코프 블록을 어디서 작성하는가에 기초해서 렉서가 코드를
함수 레벨 스코프란 함수 코드 블록 내에서 선언된 변수는 함수 코드 블록 내에서만 유효하고 함수 외부에서는 유효하지 않다(참조할 수 없다)는 것입니다.!블록 레벨 스코프란 모든 코드 블록(함수,if문,for문,while문,try/catch문 등)내에서 선언된 변수는 코
변수와 함수 선언문이 선언된 위치에서 코드의 꼭대기로 끌어올려지느것이 호이스팅입니당..!!3\. 함수가 먼저 끌어올려지고 그 다음 변수가 끌어올려집니다.!
함수레벨 스코프를 가지고 있어요!중복 선언이 가능해요! 재할당도 가능해요!호이스팅 당해요!블록레벨 스코프를 가지고 있어요!중복 선언이 불가능해요!, 재할당은 가능해요!호이스팅 당해요! → 호이스팅을 당하지않는다는 얘기가 있지만 잘못된 사실이다. 이를 이해하기위해 TDZ
클로저는 함수가 속한 렉시컬 스코프를 기억하여 함수가 렉시컬 스코프 밖에서 실행될 때에도 이 스코프에 접근할 수 있게 하는 기능을 뜻합니다.클로저는 자신이 생성될 때의 환경을 기억해야 하므로 메모리 차원에서 손해를 볼 수 있습니다. 그런데 사용하는 이유가 무엇일까요?!
this는 '자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수'이다.자바스크립트의 this keyword는 Java와 같은 익숙한 언어의 개념과 달라 개발자에게 혼란을 준다.Java에서의 this는 인스턴스 자신(self)을 가리키는 참조변수이다
📌 You don't know JS와 https://poiemaweb.com/ 를 참고하여 작성한 글입니다.this를 지정한 객체로 직접 바인딩 하므로 '명시적 바인딩'이라고 한다.apply()메소드의 경우, call()와 기능은 같다. apply()는 두번
화살표 함수(Arrow function)는 function 키워드 대신 화살표(=>)를 사용하여 보다 간략한 방법으로 함수를 선언할 수 있다.function 키워드로 생성한 일반 함수와 화살표 함수의 가장 큰 차이점은 this이다.일반 함수는 함수를 선언할 때 this
Strict Mode는 코드에 문법을 보다 엄격히 적용하는 방법입니다.strict mode를 적용하려면 전역의 선두 또는 함수 몸체의 선두에 'use strict';를 추가한다.strict mode 스크립트와 non-strict mode 스크립트를 혼용하는 것은 오류를
Javascript는 싱글스레드로 동작하는 언어입니다. 메인 스레드, 하나의 스레드로 구성되어 있기 때문입니다.싱글스레드는 한번에 하나의 작업만 수행할 수 있습니다.다른 작업이 중간에 끼어들 수도 없고, 기존에 수행하던 작업이 끝나야만 그 다음 작업을 수행할 수 있습니
Promise는 자바스크립트 비동기 처리에 사용되는 객체입니다.콜백 헬비동기 함수의 처리 결과를 가지고 다른 비동기 함수를 호출해야 하는 경우, 함수의 호출이 중첩(nesting)이 되어 복잡도가 높아지는 현상이 발생하는데 이를 콜백 헬이라고 합니다.에러처리크게 2가지
async와 await는 자바스크립트의 비동기 처리 패턴 중 가장 최근에 나온 문법입니다.에러 핸들링Promise 를 활용할 시에는 .catch() 문을 통해 에러 핸들링이 가능하지만, async/await 은 에러 핸들링 할 수 있는 기능이 없어 try-catch()
실행 컨텍스트는 실행 가능한 코드를 형상화하고 구분하는 추상적인 개념이다. 쉽게 설명하자면, 실행 가능한 코드가 실행되기 위해 필요한 환경이다.