JavaScript - Variable types (변수 타입)
2021. 11. 8. 23:39
Variable types
- premitive: value로 값이 저장됨
- object: 오브젝트가 가리키는 레퍼런스가 저장됨
- 메모리값이 다른 방식으로 저장된다.
숫자(Number)
let number = 6;
미리 정해진 값
const infinity = 1 / 0;
const negativeInfinity = -1 / 0;
const NaN = 'not a number' / 2
console.log(infinity);
console.log(negativeInfinity);
console.log(NaN);
bigInt
→원래 숫자 범위: (-2**53) ~ 2*53 (53승)
const bigInt = 1234568901234567890123456890n
console.log(`value: ${bigInt}, type: ${typeof bigInt}`);
문자열(String)
- ''로 감싸서 선언
- `` template literals
const gazero = 'gazero';
const greeting = 'hello' + gazero;
console.log(`value: ${greeting}, type: ${typeof greeting}`);
const helloYoung = `hi ${gazero}!`;
console.log(`value: ${helloYoung}, type: ${typeof helloYoung}`);
console.log('value: ' + helloYoung + ' type: ' + typeof helloYoung);
참 거짓(Boolean)
- false: 0, null, undefined, NaN, '' → if문에서 false로 변환되므로 if구문 실행 안됨
- true: any other value
null
- empty 값 할당
undefined
- 값이 지정되지 않음, 비어있는지 값이 없는지 정해지지 않은 상태
//null
let nothing = null;
console.log(`value: ${nothing}, type: ${sypiof nothing}`);
//undefined
let x;
let x = undefined;
console.log(`value: ${x}, type: ${typeof x}`);
Symbol
- 동일한 string이어도 다른 값으로 인식
- 고유한 식별자 만들 때 사용
const symbol1 = Symbol('id');
const symbol2 = Symbol('id');
console.log(symbol1 === symbol2); //false
const gSymbol1 = Symbol.for('id');
const gSymbol2 = Symbol.for('id');
console.log(gSymbol1 === gSymbol2); //true
console.log(`value: ${symbol1.description}, type: ${typeof.description}`);
Dynamic typing: dynamically typed language
- JS는 프로그램이 동작할 때 할당된 값에 따라 타입이 변경될 수 있음
so, javascript + type = TS
'JavaScript' 카테고리의 다른 글
JavaScript - Array(배열) (0) | 2021.11.12 |
---|---|
JavaScript - script async와 defer의 차이 (0) | 2021.11.11 |
JavaScript의 역사 (0) | 2021.11.10 |
JavaScript - Operator(연산자) (0) | 2021.11.09 |
JavaScript - 변수, 타입, 함수 (1) | 2021.04.06 |