[JavaScript] - 원시 타입과 객체 타입 비교 (Primitive type VS Object type)
·
📜 Web Programming/JavaScript
자바스크립트의 데이터 타입은 크게 원시 타입(Primitive Type)과 객체 타입(Object Type)으로 구분 가능하다. 원시 타입과 객체 타입의 특성을 알아보도록 하겠다. 원시 타입 원시 타입이 가지는 주요한 3가지 특성은 다음과 같다. 원시 타입의 값(원시 값)은 변경 불가능한 값이다. 원시 값을 변수에 할당하면 변수에는 실제 값이 저장된다. 값에 의한 전달이 이루어진다. 변경 불가능한 값 원시 타입의 값은 변경 불가능한 값이며, 읽기 전용 값이다. 원시 값에 할당한 변수는 원시 값 자체를 값으로 가진다. 이때, 변경 불가능하다는 것은 변수에 대한 것이 아니라, "값"에 대한 것이다. 변수는 재할당을 통해 변수 값을 변경할 수 있다. 상수는 재할당이 금지된 변수이다. (상수와 변경 불가능한 값..
[JavaScript] - 객체 리터럴 (Object Literal)
·
📜 Web Programming/JavaScript
객체의 정의 객체 타입은 다양한 타입의 값을 하나의 단위로 구성한 복합적인 자료구조로 변경가능한 값이다. 객체는 0개 이상의 프로퍼티로 구성된 집합이며, 이때 프로퍼티는 키(Key)와 값(Value)로 구성된다. 자바스크립트의 모든 값은 프로퍼티의 값이 될 수 있는데 프로퍼티의 값이 함수일 경우, 특별히 "메서드"라고 부른다. 객체는 결국 프로퍼티와 메서드로 구성된 집합체이다. 객체 리터럴에 의한 객체 생성 자바스크립트는 C++이나 Java와 달리 "프로토타입 기반 객체지향 언어"이기에 다양한 객체 생성 방법을 제공한다. 객체 리터럴 Object 생성자 함수 생성자 함수 Object.create 메서드 클래스(ES6) 이 중에서 가장 간편한 방법은 "객체 리터럴"을 사용하는 것이다. 중괄호 내에 0개 이..
[JavaScript] - 타입 변환과 단축 평가 (Type Conversions & Short-Circuit Evaluation)
·
📜 Web Programming/JavaScript
타입 변환 개요 자바스크립트의 모든 값에는 타입이 있으며, 값의 타입은 개발자의 의도에 따라 다른 타입으로 변환될 수 있다. 타입 변환은 기존 원시 값을 사용해서 다른 타입의 새로운 원시 값을 생성하는 것이다. 개발자 의도와 상관없이 표현식을 평가하는 도중에 자바스크립트 엔진이 암묵적으로 타입을 변환하는 것을 “암묵적 타입 변환(Implicit Coercion)” 또는 “타입 강제 변환(Type Coercion)"이라고 한다. (타입을 변경하겠다는 개발자의 의도가 코드에 명백히 드러나지 않는다.) 개발자가 의도적으로 값의 타입을 변환하는 것을 “명시적 타입 변환(Explicit Coercion)” 또는 “타입 캐스팅(Type Casting)"이라고 한다. (타입을 변경하겠다는 개발자의 의도가 코드에 드러..
[JavaScript] - 제어문 (Control Flow Statement)
·
📜 Web Programming/JavaScript
제어문 개요 조건에 따라 코드 블록을 한 번 또는 반복적으로 실행할 때 제어문이 사용된다. 일반적인 코드는 위에서 아래 방향으로 진행되지만 제어문을 사용할 경우 코드의 실행을 의도적으로 제어할 수 있다. 자바스크립트는 블록문을 하나의 실행 단위로 취급되는데 이때, 블록문이란 0개 이상의 문을 중괄호로 묶은 것으로 “코드 블록”이라고도 불린다. 블록문은 제어문이나 함수를 정의할 때 일반적으로 사용된다. 조건문 조건문은 주어진 조건식의 평가 결과에 따라 코드 블록의 실행을 결정한다. 이때, 조건식은 불리언 값으로 평가될 수 있는 표현식이다. 조건식은 기본적으로 if-else문과 switch문, 두 가지 조건문을 제공한다. if-else문 if-else문은 주어진 조건식의 평가 결과(true, false)에 ..
[JavaScript] - 연산자 (Operator)
·
📜 Web Programming/JavaScript
연산자 (Operator) 연산자는 하나 이상의 표현식을 대상으로 연산을 수행하여 하나의 값을 만드는 것이다. 연산의 대상을 피연산자라고 하며, 피연산자는 값으로 평가될 수 있는 표현식이어야 한다. 연산자와 피연산자의 조합으로 이루어진 연산자 표현식 또한 값으로 평가될 수 있는 표현식이다. 산술 연산자 산술 연산자는 피연산자를 대상으로 수학적 연산을 진행하여 새로운 숫자 값을 만들어낸다. 연산이 불가능한 경우, NaN을 반환한다. 산술 연산자에 따라 피연산자의 값을 변경하는 부수 효과가 있다. 산술 연산자는 "이항 산술 연산자"와 "단항 산술 연산자"로 구분된다. 이항 산술 연산자 이항 산술 연산자는 2개의 피연산자를 산술 연산하여 숫자 값을 만드는 연산자이다. 종류는 다음과 같다. + : 덧셈을 의미한..
[JavaScript] - 데이터 타입 (Data Type)
·
📜 Web Programming/JavaScript
데이터 타입 데이터 타입은 “값의 종류”를 말한다. 자바스크립트의 모든 값은 데이터 타입을 가진다. 자바스크립트에서 지원하는 데이터 타입은 총 7개인데 다음과 같다. (숫자, 문자열, 불리언, undefined, null, 심벌, 객체) 다만, 이 포스팅에서 객체 타입은 거의 다루지 않도록 하겠다. 데이터 타입을 나누는 이유는 바로 다음과 같다. 값을 저장할 때 확보해야 하는 메모리 공간의 크기를 결정하기 위해서 값을 참조할 때 한 번에 읽어 들여야 할 메모리 공간의 크기를 결정하기 위해서 메모리에서 읽어들인 2진수를 어떻게 해석할지 결정하기 위해서 숫자 타입 (Number) C언어나 Java와는 달리 자바스크립트에서는 하나의 숫자 타입만 존재한다. 64비트 부동소수점 형식을 따르며 정수와 실수를 구분하..
[JavaScript] - 표현식과 문 (Expression, Statement)
·
📜 Web Programming/JavaScript
값 (Value) 값(Value)이란 “식(Expression)이 평가되어 생성된 결과”를 말한다. 모든 값은 “데이터 타입”을 가지게 되며 메모리에 2진수(비트)가 나열된 형태로 저장된다. 변수는 “하나의 값을 저장하기 위해 확보한 메모리 공간”이기에 변수에 저장되는 것 또한 “값”이다. 리터럴 (Literal) 리터럴(Literal)이란 “사람이 이해할 수 있는 문자 또는 약속된 기호를 사용하여 값을 생성하는 표기법”을 말한다. 숫자, 알파벳, (+, -, {}) 등과 같은 기호가 리터럴이다. 리터럴은 변하지 않는 데이터 그 자체를 의미하며(상수와는 다른 개념), 리터럴을 사용하여 다양한 종류의 "값"을 생성할 수 있다. (런타임에 평가되어 값을 생성한다) 표현식 (Expression) 표현식(Exp..
loading