티스토리 뷰
자료형 이해하기
- 원시 타입(Primitive Data Type)
- 고정된 공간에 보관된 원시 타입의 값.
- 변경이 불가능한 값, 불변값(Immutable Value)
- Number, Boolean, String, Symbol, null, undefined
- 참조 타입(Reference Data Type)
- 값의 메모리 주소를 참조
- Object
- (키:값 형태로 이루어진 속성들의 집합, 내부에는 순서도 크기도 고정되어 있지 않음, 키는 반드시 String형)
- 자료형 확인하는 방법
- typeof
- true/false로 반환
- 원시자료형과 객체형을 구분하기 위해 활용하는 것이 좋음.
- 사용법 : typeof str === 'string'
- 내장 객체 String, Number, Bollean, Function, 원시 자료형, null 일 때는 object 문자열 반환.
- instanceof
- 어떤 종류의 객체인지 확인하는데 주로 활용.
- 원시 타입에 대한 결과는 false를 반환. 내장 객체로 선원된 변수는 true를 반환.
- 객체, 배열, 함수는 각각 Object를 상속받은 내장 객체. (true반환)
- null은 object를 상속받은 객체가 아님.
- undefined은 객체가 아니기 때문에 에러 발생
- typeof
자료형 변환 이해하기
- 자바스크립트에서는 형변환(type coercion) 지원(동적 자료형 언어)
- 자바스크립트는 느슨한 타입(loosely typed)언어, 혹은 동적(dynamic)언어. 다른 언어들과는 다르게 변수의 타입을 미리 선언할 필요가 없다는 뜻.
- 프로그램이 처리되는 과정에서 자동으로 형변환을 지원하며 어떤 값이냐에 따라 변수의 자료형이 변환됩니다.
- 자료형을 변환하는 두가지 방법
- 개발자가 직접 명시적으로 자료형을 변환하거나
- 자바스크립트 엔진에 의해 자동으로 자료형이 변환되는 방법
- 덧셈 : 대입된 값에 따라 숫자형 또는 문자형으로 반환(문자형을 우선순위로 처리)
- 뺄셈, 곱셈, 나눗셈 연산자는 항상 숫자형을 반환(문자를 넣을 시 NaN 출력)
- 단항 항수 + 를 통해 문자형을 숫자형으로 변환 가능( +문자 = 숫자로 변환)
- 내장 객체 함수 : String(), Number()
자료형의 종류
Number
- 숫자 형태를 가진 데이터
- 정수, 부동 소수점, 작은 수, 큰 수 등 여러 유형의 숫자,
- Infinity : 무한대를 의미 (Infinity로 나누면 무슨 값이든 0이 됨)
- NaN : Not a number (결과가 유효하지 않은 값 또는 수자가 너무 커서 표현할 수 없는 값)
- 64-bit Floating Point(64비트 부동 소수점)
String
- 텍스트 형태인 데이터를 위미
Boolean
- treu, false로 이루어짐
null
- 비어 있는, 존재하지 않는 값 ( 값의 부재를 의미 )
- 원시 자료형
- typeof로 object를 반환하지만 객체형이 아님
undefined
- 변수가 정의되어있지만, 아무 값도 할당받지 않은 상태
- 원시 자료형
template String
- ES6
- `` <-억음 부호로 작성
- 문자 ${표현식} 문자 공백 가능, 멀티 라인 가능
Symbol (ES6)
- ES6
- 생성: 함수 호출로 생성 가능(ex. const symbol = symbol() ; )
- new 키워드로 생성시 사용시 에러
- 함수 호출 시 값을 전달할 수 있는데 이는 디버깅 용도. Symbol()은 늘 고유한 값을 반환.
- 객체의 키로 사용 가능(레퍼런스를 변수에 담고 변수로 접근)
- 심볼이 객체의 키로 사용되면 for-in루프를 통해 심볼 키를 가져올 수 없음
- Object의 키를 반환하는 메소드를 사용해도 가져올 수 없고, JSON 문자열로 만들 때에도 해당 키는 빠짐.
- 객체의 키로 사용할 때 키를 가져오는 방법 : Object.getOwnPropertySymbols 메소드 가능..
'Study-Note > JavaScript' 카테고리의 다른 글
03. 원시 값과 객체는 메모리에 어떻게 저장되는가? 객체의 복제란? (0) | 2021.12.26 |
---|---|
02. 객체 리터럴, 프로퍼티 접근과 갱신, ES6 활용 방법 (0) | 2021.12.24 |
01. 자바스크립트의 필수! 객체와 프로퍼티, 메서드의 정의 (0) | 2021.12.24 |
00. 컴퓨터 프로그램이 실행될 때 CPU와 메모리의 역할 (0) | 2021.12.23 |
[JavaScript] Date 날짜 원하는 형식으로 Format하기 (0) | 2021.09.08 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 프로토타입
- 함수
- 상속
- JS
- 메서드
- Prototype
- this
- 타이핑
- SET
- 스택
- 면접대비
- 생성자함수
- 선언
- 객체
- 팀러버덕
- 자바스크립트
- 파이썬
- 프로퍼티
- 면접
- 프로그래머스
- 프론트엔드
- Python
- 스터디
- 타이핑효과
- Call
- 코딩테스트
- JavaScript
- react
- 리액트
- 복제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함