4. 변수 4-1. 변수란 무엇인가 왜 필요한가? 변수는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기위해 붙인 이름 예를 들어, 10 + 20 이라는 코드를 실행할 것이다. 그러면 컴퓨터는 CPU를 사용해 연산하고, 메모리를 사용
7. 연산자 연산자는 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입 지수 연산등을 수행해 하나의 값을 만듬. 7.1 산술연산자 7.2 할당연산자 7.3 비교연산잔 동등/일치 비교 연산자 Object.is 메서드 "==", "==="는 +0, -0
8. 제어문 제어문은 조건에 따라 코드 블록을 실행(조건문)하거나 반복 실행(반복문)할 때 사용. 8.1 블록문 블록문은 0개 이상의 문을 중괄호로 묶은 것으로, 코드 블록 또는 블록이라고 부르기도 한다. 주의! 문의 끝에는 세미클론을 붙이는 것이 일반적 하지만 블록문
객체 리터럴 1.객체란? > 자바스크립트는 객체 기반의 프로그래밍 언어이며, 원시 값을 제외한 나머지값( 함수, 배열, 정규 표현식 등)은 모두 객체다. 원시타입은 단 하나의 값만 나타내지만 객체 타입은 다양한 타입의 값(원시 값 또는 다른 객체)을 하나의 단위로 구성
원시 값과 객체의 비교 > 자바스크립트에 데이터 타입은 크게 원시 타입, 객체 타입으로 구분한다. 원시 타입의 값, 즉 원시 값은 변경 불가능한 값 반면 객체(참조) 타입의 값은 변경 가능한 값이다. 원시 값을 변수에 할당하면 변수에는 실제 값이 저장 반면 객체를 변수
함수 1. 함수란? > 함수는 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것. 함수 내부로 입력을 전달 받는 변수를 매개변수, 입력을 인수, 출력을 반환값이라 한다. 또한, 함수는 값이며, 여러개 존재할 수 있으므로 특정 함수를 구
모든 식별자(변수 이름, 함수 이름, 클래스 이름 등)는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위가 결정된다. 이를 스코프라 한다. 즉, 스코프는 식별자가 유효한 범위를 말한다.스코프(유효 범위)를 통해 식별자인 변수 이름의 충돌
전역 변수의 무분별한 사용은 위험하다 전역 변수를 반드시 사용해야 할 이유를 찾지 못한다면 지역 변수를 사용해야 한다.변수는 선언에 의해 생성되고 할당을 통해 값을 갖는다. 그리고 언젠가 소멸한다. 소멸이 안된다면 한번 선언된 변수는 프로그래밍 종료하지 않는 한 영원히
var 키워드로 선언한 변수는 오로지 함수의 코드 블록만을 지역 스코프로 인정 따라서, 함수 외부에서 var 키워드로 선언한 변수는 코드 블록 내에서 선언해도 모두 전역 변수가 된다.var 키워드로 변수를 선언하면 변수 호이스팅에 의해 변수 선언문이 스코프이 선두로 끌
내부 슬롯과 내부 메서드는 자바스크립트 엔진의 구현 알고리즘을 설명하기 위해 ECMAScript 사양에서 사용하는 의사 프로퍼티와 의사 메서드다. ECMAScript 사양에 등장하는 이중 대괄호 \[\[..]]로 감싼 이름들이 내부 슬롯과 내부 메서드다.내부 슬롯과 내
생성자 함수에 의한 객체 생성 ✔ 객체 생성 방식에 객체 리터럴에 의한 생성 방식도 있지만, 다양한 다른 방식도 있다. ✔ 다양한 객체 생성 방식 중에 생성자 함수를 사용하여 객체를 생성하는 방식을 살펴보고 객체 리터럴 객체 생성 방식과 생성자 함수를 사용하여 객체를
함수와 일급 객체 1. 일급 객체 > * ❗ 다음과 같은 조건을 만족하는 객체를 일급 객체라고 한다. * * ✔ 무명의 리터럴로 생성할 수 있다. 즉, 런타임에 생성이 가능하다.* * ✔ 변수나 자료구조(객체, 배열 등)에 저장할 수 있다.* * ✔ 함수의 매개변수에
프로토타입 자바스크립트는 명령형 함수형 프로토타입 기반 객체 지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어다. 자바스크립트는 객체 기반의 프로그래밍 언어이며 자바스크립트를 이루고 있는 거의 "모든 것"이 객체다. 1. 객체지향 프로그래밍 >객체지향 프로그래
프로토타입 1. 프로토타입 체인 > Person 생성자 함수에 의해 생성된 me 객체는 Object.prototype의 메서드인 hasOwnProperty를 호출할 수 있다. 이것은 me 객체가 Person.prototype뿐만 아니라 Object.prototype도
strict mode 1. strict mode란? > foo 함수내에 선언하지 않은 x 변수에 값 10을 할당 이 때 x 변수를 찾아야 x에 값을 할당할 수 있기 대문에 자바스크립트 엔진은 x 변수가 어디에서 선언되었는지 스코프체인을 통해 검색하기 시작. 하지만 f
빌트인 객체 1. 자바스크립트 객체의 분류 > 자바스크립트 객체는 크게 3개의 객체로 분류 가능. ✔ 표준 빌트인 객체 > 표준 빌트인 객체는 ECMAScript 사양에 정의된 객체를 말하며, 애플리케이션 전역의 공통 기능을 제공한다. 표준 빌트인 객체는 ECMASc
this 1. this 키워드 > 객체는 상태를 나타내는 프로퍼티와 동작을 나타내는 메서드를 하나의 논리적인 단위로 묶은 복합적인 자료구조다. 메서드는 프로퍼티를 참조하고 변경할 수 있어야 한다. 이 때 메서드가 자신이 속한 객체의 프로퍼티를 참조하려면 자신이 속한 객
클로저 > 클로저는 난해하기로 유명한 자바스크립트 개념 중 하나, 자바스크립트 고유의 개념은 아니다. 클로저는 함수를 일급 객체로 취급하는 함수형 프로그래밍언어에서 사용되는 중요한 특성이다. 클로저는 자바스크립트 고유의 개념이 아니므로 ECMAScript 사양에 등장하
클래스 1. 클래스는 프로토타입의 문법적 설탕인가? > 자바스크립트는 클래스가 필요가 없는 프로토타입 기반 객체지향 프로그래밍 언어다. ES5에서는 클래스 없이도 생성자 함수와 프로토타입을 통해 객체지향 언어의 상속을 구현할 수 있다. > ES6의 클래스가 기존의 프
ES6 함수의 추가 기능 1. 함수의 구분 > ES6 이전의 함수는 동일한 함수라도 다양한 형태로 호출할 수 있다. > ES6 이전의 함수는 사용 목적에 따라 명확히 구분되지 않는다. 즉, ES6 이전의 모든 함수는 일반 함수로서 호출할 수 있는 것은 물론 생성자
배열 1. 배열이란? > 배열은 여러 개의 값을 순차적으로 나열한 자료구조다. > 배열이 가지고 있는 값을 요소라고 부르며, 자바스크립트의 모든 값은 배열의 요소가 될 수 있다. 배열의 요소는 배열에서 자신의 위치를 나타내는 0 이상의 정수인 인덱스를 갖는다. 인덱스
Number > 표준 빌트인 객체인 Number는 원시 타입인 숫자를 다룰 때 유용한 프로퍼티와 메서드를 제공한다. 1. Number 생성자 함수 > 표준 빌트인 객체인 Number 객체는 생성자 함수 객체다. 따라서 new 연산자와 함께 호출하여 Number 인스턴