오늘은 자바스크립트 기초를 정리해보았다. 내가 정리한 챕터는 Primitive Value & Casting 이다.
Primitive Value 이란
Primitive value (원시값)은 말 그대로 원초적인 단순 값이다
→ 객체 x / 메소드 x / 속성 x 을 가지지 않는 데이터
→ 원시값 자체는 불변이다. 변수가 변할 뿐!
원시 타입에는 각각의 객체마다 내장함수들이 있다 ex) toLocaleString(), toFixed()
(그래서 이 타입의 값들을 핸들링할 때, 이 함수들을 요긴하게 사용한다)
하지만 null / undefined 는 아무것도 없 - 다
(그래서 undefined 값인 변수를 사용할 때 TypeError가 꽤나 발생하므로, 예외처리는 필수이다)
Primitive Value 원시 값
총 7가지 타입이 있다. 하나씩 간략히 알아보자
null 과 undefined 는 값이 없을 때 주로 등장하는 녀석들이다
→ null 은 객체가 없음을 의미하고, undefined 는 값이 없을 때 나타난다
→ 리스트 자료형에서 chaining의 끝에서 pointer가 마지막인 것을 나타낼 때 사용하기도 한다
boolean 은 (이분법적) 논리의 참 / 거짓의 두가지 값을 가지는데 이 친구는 조건문에서 많이 보인다
number 는 숫자형으로 값을 표현할 수 없을 때는 NaN 이라는 녀석이 있는데 숫자로 표현할 수 없는 연산결과를 나타낸다
→ "자기자신과 같지 않다" 라는 자바스크립트의 유일한 값
→ 비트 마스킹의 데이터로도 사용될 수 있지만 권하지는 않는다고 한다. 너무 복잡하기 때문이다.
bigint 는 거대 정수를 다룰 때 사용되는 타입이다
string 은 텍스트 데이터를 표현한다
symbol은 고유하고 중복 x 값이라서 객체 프로퍼티에 대한 식별자로 사용된다.
→ 모든 심볼 값은 고유하고 중복이 되지 않으며 한번 생성되면 그 값은 변경되지 않기 때문에 충돌 위험이 없는 타입이다.
Type Casting 타입변환
위에서 데이터를 표현하는 여러가지 타입들로 하나의 타입에서 → 다른 타입으로 변환하는 것을 타입 캐스팅이라고 한다.
타입 변환에는 암묵적 형변환과 명시적 형변환 두 가지 방법이 있다.
암묵적 형변환
자바 스크립트의 좋은 점은 런타임에 의해 자동으로 타입 캐스팅이 이뤄진다는 것이다
→ + 만 문자형 > 숫자형 보다 우선시 된다
→ - * / % 는 숫자형이 더 우선시 된다
명시적 형변환
타입을 변경하기 위해 Object(), Number(), toString(), Boolean() 와 같은 함수를 사용한다
Truthy & Falsy
요 개념은 나에게 있어 약간 애매했다. 참같은 값이고 거짓같은 값이다라고만 설명이 되어있는데
값들을 boolean 으로 사용할 때 적용되는 개념인 듯하다.
Falsy
undefined 와 null, 0, '', NaN 요 다섯 녀석들은 Falsy 한 값이다.
boolean 으로 사용할 때, 기본값이 false 이다. 그래서 !(느낌표)를 붙여주면 반대 값인 true 가 된다
Truthy
위의 다섯가지 값을 제외한 나머지는 몽땅 다 Truthy 이다
Truthy & Falsy 는 함수 안에서 예외처리를 해줄 때 이 개념은 유용하게 사용된다.
두 함수를 비교해보자 (Falsy 의 개념을 이해하고 응용하면 얼마나 편한지 보자)
function getName (name) {
if(name === undefined || name === null || name === ''){ // 줄줄이 달린 사탕같은 그들
return;
}
..... 함수내용
}
function getName (name) {
if(!name){ // 간단하게 !를 사용
return;
}
..... 함수내용
}
'JavaScript' 카테고리의 다른 글
JavaScript - 연산자 (3) | 2023.11.07 |
---|---|
JavaScript - 실행 컨텍스트란 (2) | 2023.10.31 |
JavaScript - 비트마스킹 적용하기 (Feat.비트연산자) (1) | 2023.10.12 |
JavaScript - 자바스크립트 엔진 / 이벤트 루프 / 테스크 큐 (1) | 2023.08.01 |
JavaScript - This 에 대해서 (0) | 2023.07.30 |
댓글