2021. 7. 19. 00:06ㆍCSE/Java Script
* 자바스크립트의 데이터 타입
- 기본 타입 : 숫자, 문자열, Boolean, undefined, null
- 참조 타입 : 객체 : 배열, 함수, 정규표현식
1. 자바스크립트의 기본 데이터 타입
- 그 자체가 하나의 값을 나타낸다
- 자바스크립트는 변수를 선언할 때 타입을 미리 정하지 않는다 => 느슨한 타입 체크 언어
[1] 숫자
- 자바스크립트는 오직 하나의 숫자형만 존재 : 64비트 부동 소수점 형태
- 자바스크립트는 모든 숫자를 실수로 처리 => 연산할 때 주의 (특히 나눗셈!)
[2] 문자열
- 작은 따옴표 또는 큰 따옴표로 생성한다
- 한 번 정의된 문자열은 변하지 않는다 => 문자열 수정 불가능
[3] Boolean
- true / false로 값을 지정하면 됨
[4] null과 undefined
- 둘 다 "값이 비어있음"을 나타냄
- undefined는 타입이자, 값을 나타냄 => 따라서 undefined인지는 typeof로 확인 가능
- null인지 확인하기 위해서는 typeof가 아닌 일치 연산자(===)을 사용해야 함
2. 자바스크립트의 참조 데이터 타입 (객체 타입)
- 객체 : 단순히 '이름(key) : 값(value)' 형태의 프로퍼티를 저장하는 컨테이너로서, 해시라는 자료구조와 상당히 유사함
- 참조 타입 객체는 여러 개의 프로퍼티를 포함할 수 있다
[1] 객체 생성 방식
① Object() 생성자 함수 이용
var foo = new Object();
foo.name = 'foo';
foo.age = 30;
foo.gender = 'male';
console.log(typeof foo); //object
console.log(foo); //{name : 'foo', age : 30, gender : 'male'}
② 객체 리터럴 방식 이용
- 리터럴 : 표기법
- 객체 리터럴 : 객체를 생성하는 표기법을 의미, 중괄호를 이용해서 객체를 생성
=> {"프로퍼티 이름" : "프로퍼티 값"}
=> 이 때, 프로퍼티 이름에는 문자열 또는 숫자가 올수 있다.
var foo = {name : "foo", age : 30, gender : "male"};
console.log(typeof foo); //object
console.log(foo); //{name : 'foo', age : 30, gender : 'male'}
③ 생성자 함수 이용
=> 4장에서 다룸 (추후에 url 추가 예정)
[2] 객체 프로퍼티 읽기/쓰기/갱신
- 객체 프로퍼티 접근 방법 : 대괄호 표기법, 마침표 표기법
var foo = {name : 'ella', major : 'science'};
//읽기
console.log(foo.name); //ella
console.log(foo['name']); //ella
console.log(foo.nickname); //undefined
//수정
foo.major = 'math';
console.log(foo.major); //math
console.log(foo['major']); //math
//동적 생성
foo.age = 24;
console.log(foo.age); //24
+ 대괄호 표기법만 사용해야 하는 경우 : 프로퍼티 이름이 표현식이거나 예약어일 경우
foo['full-name'] = 'Ella M';
console.log(foo['full-name']); //'Ella M'
console.log(foo.full-name); // NaN (에러 발생)
console.log(foo.full); // undefined
[3] for문을 이용한 객체 프로퍼티 출력
: for문을 통해 객체에 포함된 모든 프로퍼티를 출력할 수 있다
var foo = {name : 'ella', major : 'science', age : 24};
var prop;
for (prop in foo){
console.log(prop,foo[prop]);
}
//name ella
//major science
//age 24
[4] 객체 프로퍼티 삭제
- delete 사용 : 이 때, delete는 객체의 프로퍼티만 삭제 가능하고, 객체는 삭제할 수 없다.
var foo = {name : 'ella', major : 'science', age : 24};
console.log(foo.name); //ella
delete foo.name;
console.log(foo.name); //undefined
'CSE > Java Script' 카테고리의 다른 글
[Java Script] 함수와 프로토타입 체이닝 1 (0) | 2021.07.30 |
---|---|
[Java Script]데이터 타입과 연산자 3 (기본 타입과 표준 메서드, 연산자) (0) | 2021.07.27 |
[Java Script]데이터 타입과 연산자 3 (배열) (0) | 2021.07.26 |
[Java Script]데이터 타입과 연산자 2 (참조타입, 프로토타입) (0) | 2021.07.22 |
[JavaScript] 한 시간만에 끝내는 Node.js 입문 강의 듣기 (0) | 2020.11.23 |