JavaScript 데이터 타입

dahyeyudev·2019년 11월 20일
0

basic

목록 보기
2/4

why? 데이터 타입을 알아야 하는 이유

프로그래밍은 변수를 통해 값을 저장하고 참조하여 연산자로 값을 연산, 평가하고 조건문과 반복문에 의한 흐름제어로 데이터 흐름을 제어하고 함수로 재사용이 가능한 구문의 집합을 만들며 객체, 배열 등으로 자료를 구조화하는 것이다.

데이터는 값의 종류에 따라 메모리 크기가 다르다. 데이터 종류를 데이터 타입이라한다.

js는 변수를 선언할 때 타입을 미리 정하지 않고, var라는 한 가지 키워드로만 변수를 선언한다. 이렇게 선언된 변수에는 어떤 타입의 데이터라도 저장하는 것이 가능하다.

primitive type 와 reference/object type 비교

원시타입은 하나의 값만 가진다. immutable 값이며 pass-by-value(값에 의한 전달)이다.

참조타입인 객체는 여러 개의 프로퍼티들을 포함할 수 있다. 이런 객체의 프로퍼티는 원시타입 값을 포함하기도 하고 다른 객체를 가리킬수도 있다.

==이런 프로퍼티의 성질에 따라 객체의 프로퍼티는 함수로 포함할 수 있고, js에서는 이런 프로퍼티를 method라 부른다.==

primitive type

원시타입, 기본타입이라고 불린다.

| 기본타입 | 설명 |
| --------- | ------------------------------------------------------------ |
| 숫자 | 숫자 |
| 문자열 | 'string' |
| 불린값 | true, false |
| null | undefined와 같이 ''값이 비어있음''을 나타낸다. 기존 값 지울 때 |
| undefined | undefined는 타입이자, 값을 나타낸다. 존재하지 않는 프로퍼티에 접근할 경우. |

reference type

  • 객체는 데이터와 그 데이터에 관련한 동작(절차, 방법, 기능)을 모두 포함할 수 있는 개념적 존재이다. 달리 말해, 이름과 값을 가지는 데이터를 의미하는 property와 동작을 의미하는 method를 포함할 수 있는 독립적 주체이다.

  • ==자바스크립트는 객체(object) 기반의 스크립트 언어로서 자바스크립트를 이루고 있는 거의 “모든 것”이 객체==이다. 원시 타입(Primitives)을 제외한 나머지 값들(배열, 함수, 정규표현식 등)은 모두 객체이다. 또한 객체는 pass-by-reference(참조에 의한 전달) 방식으로 전달된다.

  • 참조타입, 객체타입이라고 불린다. 자바스크립트는 앞서 설명한 원시타입(숫자, 문자열, 불린값, null, undefined)을 제외한 모든 값은 객체다. 배열, 함수, 정규표현식 등 모두 객체로 표현된다.

  • js에서 객체는 단순히 'key: value' 형태의 프로퍼티들을 저장하는 컨테이너다.

프로퍼티

js가 객체를 생성하는 방법 : 3가지

  1. Object() 객체 생성자 함수 이용

  2. 객체 리터럴

  3. 생성자 함수

객체 리터럴 방식 이용

객체 리터럴 방식은 {} 중괄호만 쓰면 객체를 생성할 수 있다. 중괄호 안을 비우면 빈 객체가 생성되고 중괄호 안에

{'프로퍼티 이름' : '프로퍼티 값'} 을 입력하면 해당 프로퍼티가 추가된 객체를 생성할 수 있다.

  • 여기서 프로퍼티 이름은 문자열이나 숫자가 올 수 있다.
  • 프로퍼티 값으로는 js의 값을 나타내는 어떤 표현식도 올 수 있으며, 이 값이 함수일 경우 이러한 프러퍼티를 method라 부른다.

객체 프로퍼티 읽기/쓰기/갱신

객체는 새로운 값을 가진 프로퍼티를 생성하고, 생성된 프로퍼티에 접근해서 해당 값을 읽거나 또는 원하는 값으로 프로퍼티의 값을 갱신할 수 있다.

객체의 프로퍼티에 접근하는 2가지 방식

  • [] 표기법
  • . 표기법

요약

  • 객체는 프로퍼티(=데이터) + 메소드(데이터를 참조하고 조작할 수 있는 동작)

  • 프로퍼티는 key값 value값

  • 프로퍼티값이 함수면 메소드

참고

인사이드 자바스크립트

https://poiemaweb.com/js-data-type-variable

  • [[Property]]프로퍼티
    앞서 설명한 것처럼 모든 객체는 자신의 부모 역할을 하는 프로토타입 객체를 가리키는 숨겨진 프로퍼티가 있다. ECMAScript 명세서에는 이 프로퍼티를[[Prototype]]이라고 명시하고 있지만, 크롬 브라우저에서는 _proto_프로퍼티 형태로 구현돼 있다.

프로퍼티에 대한 설명은 자세하게 다루지 않았는데 객체에서 다룰 예정이다.

0개의 댓글