엔진의 주요 두 구성요소Memory Heap : 메모리 할당이 일어나는 곳Call Stack : 코드 실행에 따라 호출 스택이 쌓이는 곳데이터를 임시 저장하는 곳으로, 함수나 변수, 함수를 실행할 때 사용하는 값들을 저장합니다.코드가 실행되면 코드의 내부의 실행 순서를
스코프는 유효 범위라는 뜻으로, 식별자(변수)가 유효한 범위를 말합니다.자바스크립트 엔진은 스코프를 통해 어떤 변수를 참조해야 할 것인지 결정한다.따라서 스코프란 자바스크립트 엔진이 식별자를 검색할 때 사용하는 규칙이라고도 할 수 있다.안쪽 스코프에서 바깥쪽 스코프로
this는 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수(self-reference variable)이다. 함수를 호출할 때 생성되는 실행 컨텍스트 객체다.this를 통해 자신이 속한 객체 또는 자신이 생성할 인스턴스의 프로퍼티나 메서드를 참
this가 함수호출식에 따라 객체를 가르켰다면, call apply bind함수는 직접 this를 지정가능하다.즉 함수 호출 방식과 상관없이 this를 바인딩 시킬 수 있다.Call은 this를 바인딩하면서 함수를 호출하는 것이다.첫번째 인자로 this바인딩할 객체이고
외부함수에서 자신이 선었됬을떄의 (lexical environment)을 기억해 외부함수의 scope에 접근할 수 있는것을 말한다.자바스크립트에서 클로저는 함수가 생성될때마다 생성된다.힘수의 실행 컨텍스트가 생성될 때 ,함수의 lexical environment도 생
Java, C++과 같은 클래스 기반 객체지향 프로그래밍 언어와 달리 자바스크립트는 프로토타입 기반 객체지향 프로그래밍 언어이다. 클래스 기반 객체지향 프로그래밍 언어는 객체 생성 이전에 클래스를 정의하고 이를 통해 객체(인스턴스)를 생성한다.하지만 자바스크립트의 모든
자바 스크립트의 변수 타입에는 크게 Primitive type(원시타입)과 Reference Type(참조타입)으로 나누어져 있다. 원시타입(Primitive type)의 데이터는 불변하는 값으로, 메모리를 한번 할당받으면 값이 변경되지 않는다(불변성).데이터 복사가
callback, promise, async/await는 (싱글스레드로 이루어져) 단일 호출 스택을 가진 자바스크립트에서 비동기를 처리할 수 있게 하는 방법들입니다.자바스크립트에서 콜백 함수는 다른 함수의 매개변수로 함수를 전달하고, 어떠한 이벤트가 발생한 후 매개변수
호이스팅이란 변수 및 함수 선언문이 스코프 내의 최상단으로 끌어올려지는 현상 을 말한다. var 키워드는 변수 호이스팅에 의해 런타임 이전에 변수가 선언되어 undefined를 출력한다 하지만 let 키워드에서는 참조에러가 나타난다.var 키워드는 '선언 단계'와 '초
변수 선언이란 변수를 생성하는 것을 말한다.값을 저장하기 위한 메모리 공간을 확보하고 변수 이름과 확보된 메모리 공간의 주소를 연결해서 값을 저장할 수 있게 준비하는 것이다.변수를 사용하려면 반드시 선언이 필요하다. 변수를 선언할 때는 var, let, const 키워
DOM 트리상에 존재하는 모든 DOM 요소 노드에서 발생한 이벤트는 DOM 트리를 통해 전파됩니다. 이를 이벤트 전파라고 한다사용자의 다양한 입력을 통해 동적으로 생성되는 이벤트 객체는 이벤트를 발생시킨 타깃(target)을 중심으로 DOM 트리를 통해 전파된다.이벤트
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Arrayhttp://tcpschool.com/javascript/js_standard_arrayMethod
undefined 는 변수를 선언은 하였지만, 값을 할당하지 않을 경우의 상태를 나타낸다.(변수의 초기값인 셈)null 은 명시적으로 값이 비어있는 상태를 나타낼 때 사용된다.변수의 값이 등록 되어있지 않기 때문에 초기값으로 자동 정의된 것이다.값은 값이지만 값으로써
데이터타입(data type)이란 프로그램에서 다룰 수 있는 값의 종류를 의미한다.자바스크립트에서는 여러 가지 형태의 타입을 미리 정의하여 제공하고 있으며, 이것을 기본 타입이라고 한다. 자바스크립트의 기본 타입은 크게 원시 타입과 참조 타입으로 구분할 수 있다.값을
자바스크립트에서 원시 타입을 제외한 모든 데이터 타입(객체, 함수, 배열, 정규표현식 등)은 객체다.객체가 보유한 값을 '프로퍼티'라고 하며, 객체가 보유한 함수를 '메서드'라고 한다.프로퍼티는 키와 값으로 구성된다. Object.create(프로토타입) : 프로토타
자바스크립트에서 원시 타입을 제외한 모든 데이터 타입(객체, 함수, 배열, 정규표현식 등)은 객체다.객체가 보유한 값을 '프로퍼티'라고 하며, 객체가 보유한 함수를 '메서드'라고 한다.프로퍼티는 키와 값으로 구성된다.
코드의 실행환경에 대한 여러가지 정보를 담고 있는 개념 으로, 간단히 말하자면 자바스크립트 엔진에 의해 만들어지고 사용되는 코드 정보를 담은 객체의 집합이라고 할 수 있다.(코드가 실행된다면 Execution Context 내부에서 실행되고 있는 것이다.)엔진이 스크립
여러 기능들에 관한 코드가 모여있는 하나의 파일모듈은 자신만의 파일 스코프(모듈 스코프)를 가질 수 있어야 한다.자신만의 파일 스코프를 갖는 모듈의 자산(모듈에 포함되어 있는 변수, 함수, 객체 등)은 기본적으로 비공개 상태다.즉, 모듈은 개별적 존재로서 애플리케이션과
고차 함수는 함수를 인수로 전달받거나, 함수를 반환하는 함수를 말한다.고차함수는 함수형 프로그래밍의 일종으로, 자바스크립트를 함수형 프로그래밍에 알맞은 언어로 만들어주는 특성이 바로 자바스크립트가 고차 함수이다.이 고차함수를 이해하기 위해선 함수형 프로그래밍과 일급객체
데이터를 변수에서 다른 변수로 전달할 때 "값에 의한 전달"과 "참조에 의한 전달 방식"이 있다.이 전달 방식은 데이터 타입에 따라 다른다원시(Primirive) 타입: 값의 전달 객체(Object) 타입: 참조의 전달 원시타입의 데이터값이 들어있는 변수를 다른 변수로
카비지 컬렉션 C 언어같은 저수준 언어에서는 메모리 관리를 위해 malloc() 과 free()를 사용해 메모리를 수동으로 해제 한다. 반면, 자바스크립트는 객체가 생성되었을 때 자동으로 메모리를 할당하고 더 이상 필요하지 않을 때 자동으로 해제한다. 이를 가비지 컬