Types (데이터 타입)
데이터 타입 종류
- 자바스크립트의 모든 값은 특정한 데이터 타입을 가짐
- 크게 원시 타입(Primitive type)과 참조 타입(Reference type)으로 분류됨
원시 타입 (Primitive type)
- 객체 (object)가 아닌 기본 타입들을 말함
- 변수에 해당 타입의 값이 담김
- 다른 변수에 복사할 때 실제 값이 복사됨
숫자 (Number) 타입
- 정수, 실수 구분 없는 하나의 숫자 타입
- 부동소수점 형식을 따름
- NaN (Not-A-Number)
- 계산 불가능한 경우 반환되는 값
문자열 (String) 타입
- 텍스트 데이터를 나타내는 타입
- 16비트 유니코드 문자의 집합
- 작은따옴표또는 큰따옴표 모두 가능
- 템플릿 리터럴 (Template Literal)
- ES6부터 지원
- 따옴표 대신 backtick(``)으로 표현
- ${ expression } 형태로 표현식 삽입 가능
undefined
- 변수의 값이 없음을 나타내는 데이터 타입
- 변수 선언 이후 직접 값을 할당하지 않으면 자동으로 unerfined가 할당됨
null
- 변수의 값이 없음을 의도적으로 표현할 때 사용하는 데이터 타입
- (개발자가 의도적으로 필요에 의해 할당)
- null 타입과
typeof
연산자typeof
: 자료형 평가를 위한 연산자- null 타입은 ECMA 명세의 원시 타입의 정의에 따라 원시 타입에 속하지만,
typeof
연산자의 결과는 객체(object)로 표현됨
불리언 (Boolean) 타입
- 논리적 참 또는 거짓을 나타내는 타입
true
또는false
로 표현- 조건문 또는 반복문에서 유용하게 사용
- 조건문 또는 반복문에서 불리언이 아닌 데이터 타입은 자동 형변환 규칙(ECMAScript® 2022 Language Specification (tc39.es))에 따라
true
또는false
로 변환됨
- 조건문 또는 반복문에서 불리언이 아닌 데이터 타입은 자동 형변환 규칙(ECMAScript® 2022 Language Specification (tc39.es))에 따라
참조 타입 (Reference type)
- 자세한 내용은 Java Script 카테고리 내 타입별 포스트 참고
- 함수 (Functions)
- 배열 (Arrays)
- 객체 (Objects)
Operator (연산자)
할당 연산자
- 오른쪽에 있는 피연산자의 평가 결과를 왼쪽 피연산자에 할당하는 연산자
- 다양한 연산에 대한 단축 연산자 지원
- Increment 및 Decrement 연산자
- Increment(
++
) : 피연산자의 값을 1 증가시키는 연산자 - Decrement(
--
) : 피연산자의 값을 1 감소시키는 연산자 - Airbnb Style Guide 에서는
+=
또는-=
과 같이 더 분명한 표현으로 적을 것을 권장
- Increment(
비교 연산자
- 피연산자들(숫자, 문자, Boolean 등)을 비교하고 비교의 결과값을 불리언으로 반환하는 연산자
- 문자열은 유니코드 값을 사용하며 표준 사전순서를 기반으로 비교
- 예시) 알파벳끼리 비교할 경우
- 알파벳 오름차순으로 우선순위를 지님
- 소문자가 대문자보다 우선순위를 지님
- 예시) 알파벳끼리 비교할 경우
동등 비교 연산자 (==
)
- 두 피연산자가 같은 값으로 평가되는지 비교 후 불리언 값을 반환
- 비교할 때 암묵적 타입 변환(ECMAScript Language Specification - ECMA-262 Edition 5.1 (ecma-international.org))을 통해 타입을 일치시킨 후 같은 값인지 비교
- 두 피연산자가 모두 객체일 경우 메모리의 같은 객체를 바라보는지 판별
- 예상치 못한 결과가 발생할 수 있으므로 특별한 경우(Google JavaScript Style Guide)를 제외하고 사용하지 않음
일치 비교 연산자 (===
)
- 두 피연산자가 같은 값으로 평가되는지 비교 후 불리언 값을 반환
- 엄격한 비교(ECMAScript Language Specification - ECMA-262 Edition 5.1 (ecma-international.org))가 이뤄지며 암묵적 타입 변환이 발생하지 않음
- 엄격한 비교 : 두 비교 대상의 타입과 값 모두 같은지 비교하는 방식
- 두 피연산자가 모두 객체일 경우 메모리의 같은 객체를 바라보는지 판별
논리 연산자
- 세 가지 논리 연산자로 구성
- and 연산은
&&
연산자를 이용 - or 연산은
||
연산자를 이용 - not 연산은
!
연산자를 이용
- and 연산은
- 단축 평가 지원
- ex)
false && true
=>false
- ex)
true || false
=>true
- ex)
삼항 연산자
- 세 개의 피연산자를 사용하여 조건에 따라 값을 반환하는 연산자
- 가장 왼쪽의 조건식이 참이면 콜론(:) 앞의 값을 사용하고 그렇지 않으면 콜론(:) 뒤의 값을 사용
- 삼항 연산자의 결과는 변수에 할당 가능
- 한 줄에 표기하는 것을 권장(GitHub - airbnb/javascript: JavaScript Style Guide)
'Web > JavaScript' 카테고리의 다른 글
JS 기초_06 (Functions) (0) | 2021.05.10 |
---|---|
JS 기초_05 (Conditions & Loops) (0) | 2021.05.10 |
JS 기초_03 (Variables & Identifiers) (0) | 2021.05.09 |
JS 기초_02 (ECMAScript 6) (0) | 2021.05.09 |
JS 기초_01 (Event) (0) | 2021.05.09 |