데이터의 사용 : 데이터를 입력 받는다. → 결과를 출력한다.변수는 프로그래밍 언어에서 데이터를 관리하기 위한 핵심 개념하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름값이 저장된 메모리 공간에 상징적인 이름을 붙인 것
값은 식(표현식)이 평가되어 생성된 결과를 말한다.모든 값은 데이터 타입을 가지며, 메모리에 2진수 비트의 나열로 저장된다.변수에 할당되는 것은 값이다.리터럴은 사람이 이해할 수 잇는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법을 말한다.3 //숫자 리터럴 3
데이터 타입은 값의 종류를 말한다.자바스크립트는 7개의 데이터 타입을 제공한다. 원시타입(Primitive Type)과 객체타입(Reference Type)으로 분류데이터 타입에 따라 확보해야 할 메모리 공간의 크기도 다르고 저장되는 2진수도 다르며 읽어 들여 해석하는
연산는 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입, 지수 연산 등을 수행해 하나의 값을 만든다. 이때 연산의 대상을 피연산자라 한다. 피연산자는 값으로 평가될 수 있는 표현식이어야 한다.피연산자는 연산의 대상이 되어야 하므로 값으로 평가할 수 있어
제어문은 조건에 따라 코드 블록을 실행하거나 반복 실행할 때 사용한다.(조건문 또는 반복문)코드의 실행 흐름을 이해하기 어렵게 만들 수 있기때문에 가독성이 떨어질 수 있다. ⇒ forEach, map, filter, reduce 등의 고차함수를 사용해 복잡성 해결하려
자바스크립트의 모든 값은 타입이 있다.의도적으로 값의 타입을 변환하는 것을 명시적 타입 변환 또는 타입 캐스팅이라 한다.의도와 상관없이 자바스크립트 엔진에 의해 암묵적으로 자동 타입변환되는 것을 암묵적 타입 변환 또는 타입 강제 변환이라 한다.이때 타입변환이 일어날때
자바스크립트는 객체기반의 프로그래밍 언어이다.자바스크립트를 구성하는 거의 모든 것이 객체라 할 수 있다. (원시값을 제외한 나머지는 모두 객체)객체 타입은 다양한 타입의 값을 하나의 단위로 구성한 복합적인 자료구조다.원시타입의 값은 변경 불가능한 immutable va
원시 타입 vs. 객체 타입원시 값은 변경 불가능한값이다. (immutable value)변경 불가능하다는 것은 변수가 아니라 값에 대한 말이다. 원시값을 변경할 수 없다는 것이지 변수 값을 변경할 수 없다는 것은 아니다. (변수는재할당으로 언제든지 변수값 변경(교체)
함수는 자바스크립트에서 가장 중요한 핵심 개념스코프, 실행컨텍스트, 클로저, 생성자 함수에 의한 객체 생성, 메서드, this, 프로토타입 모듈화 등 모두 함수와 연관함수는 일련의 과정을 문으로 구현하고 코드블록으로 감싸서 하나의 실행 단위로 정의한 것이다.함수의 구
모든 식별자(변수 이름, 함수 이름, 클래스 이름 등)는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위가 결정된다. 이를 스코프라 한다.식별자가 유효한 범위스코프(유효 범위)를 통해 식별자인 변수 이름의 충돌을 방지하여 같은 이름의 변
전역 변수의 무분별한 사용은 위험하다.전역 변수의 사용을 억제할 수 있는 방법들 알아보자암묵적 결합 허용모든 코드가 전역 변수를 참조하고 변경할 수 있다.변수의 유효범위가 클수록 코드의 가독성은 나빠지고 의도치 않게 상태가 변경된다.긴 생명주기전역 변수는 생명주기가 길
var 키워드로 선언한 변수는 중복 선언이 가능하다.이미 선언되어 있는 것을 모르고 중복 선언한다면 의도치 않게 먼저 선언된 변수 값이 변경되는 부작용 발생var 키워드로 선언한 변수는 오로지 함수의 코드 블록만을 지역 스코프로 인정한다.함수 외부에서 var 키워드로
자바스크립트는 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어다.자바스크립트는 객체 기반의 프로그래밍 언어이며 자바스크립트를 이루고 있는 거의 모든것이 객체다.객체지향 프로그래밍은 “객체의 집합으로 프로그램을 표현”하려는
생성자 함수에 의해 생성된 객체는 프로토타입 체인을 통해 Object.prototype 메서드인 hasOwnProperty를 호출할 수 있다.생성자 함수 Person에 의해 생성된 me객체가 Person.prototype뿐만 아니라 Object.prototype도 상속
매서드가 자신이 속한 객체의 프로퍼티를 참조하려면 먼저 자신이 속한 객체를 가리키는 식별자를 참조할 수 있어야 한다.생성자 함수를 정의하는 시점에는 아직 인스턴스를 생성하지 전이므로 생성자 함수가 생성할 인스턴스를 가리키는 식별자를 알 수 없다.자바스크립트는 자신이 속
실행 컨텍스트는 자바스크립트의 동작 원리를 담고 있는 핵심 개념이다.실행 컨텍스트로 자바스크립트가 스코프를 기반으로 식별자와 식별자에 바인딩된 값을 관리하는 방식과 호이스팅이 발생하는 이유, 클로저의 동작 방식, 그리고 테스크 큐와 함께 동작하는 이벤트 핸들러와 비동기
식별자와 스코프는 실행 컨텍스트의 렉시컬 환경으로 관리하고 코드 실행 순서는 실행 컨텍스트 스택으로 관리한다.코드를 실행하면 코드가 실행되는 시간의 흐름에 따라 실행 컨텍스트 스택에는 다음과 같이 실행 컨텍스트가 추가되고 제거된다. (push/pop)먼저 전역 코드를
클로저는 함수를 일급 객체로 취급하는 함수형 프로그래밍 언어에서 사용되는 중요한 특성이다.“A closure is the combination of a function and the lexical environment within which that function w