-
[JAVASCRIPT] 데이터 타입과 연산자(1)Programming/JAVASCRIPT 2019. 12. 4. 17:41
자바스크립트의 데이터 타입
1) 기본타입
- 숫자(Number)
- 문자열(String)
- 불린값(Boolean)
- undefined
- null
2) 참조타입
- 객체(Object)
-> 배열(Array)
-> 함수(Function)
-> 정규표현식
Javascript는 var라는 한 가지 키워드로만 변수 선언.
typeof로 변수 타입 확인가능
ex)
var intNum = 10; // 정수
var floatNum = 0.1; // 실수
var boolVar = true; // 불린
var emptyVar; // undefined
var nullVar = null; // null
typeof intNum;
typeof floatNum;
typeof boolVar ;
typeof emptyVar;
typeof nullVar;
출력
number number boolean undefined object
자바스크립트 기본 타입
숫자
var num = 5 / 2; 를 하면 C의 int형에서 소숫점을 버리는 것과 다르게, Javascript에서는 소숫점까지 같이나옴.
정수 부분만 구하고싶다면?
console.log(Math.floor(num)); // 출력값 2
문자열
문자열은 작은 따옴표(')나 큰 따옴표(")로 생성
ex)
var str = 'test';
console.log(str[0], str[1], str[2], str[3]); // 출력 : test
* 한번 생성된 문자열은 읽기만 가능하고 수정은 불가!!!
null과 undefined
둘 다 '값이 비어있음'을 나타냄.
값이 기본적으로 할당되지 않은 변수는 undefined 타입이고, 변수 자체의 값 또한 undefined.
즉 값도 undefined, 변수 타입도 undefined
null 타입은 개발자가 명시적으로 값이 비어있음을 나타냄.
// null 변수 생성
var nullVar = null;
console.log(typeof nullVar === null); // (출력) false
console.log(nullVar === null); // (출력) true
null의 변수 타입은 object 이기 때문에 일치연산자(===) 사용시 값을 확인해야함!!!
자바스크립트 참조 타입(객체 타입)
자바스크립트는 숫자, 문자열 , 불린값, null, undefined 제외하고는 모두 객체!
자바스크립트에서 객체
-> '이름(key):값(value)' 형태로 프로퍼티 저장하는 컨테이너, 여러 개의 프로퍼티 포함할 수 있음.
(프로퍼티 == 메소드)
객체 생성
생성 방법은 3가지
1) Object() 객체 생성자 함수 이용
2) 객체 리터럴 이용
3) 생성자 함수 이용
1) Object() 객체 생성자 함수 이용
// Object()로 start 객체 생성
var start = new Object();
// start 객체 프로퍼티 생성
start.name = 'start';
start.age = 26;
start.gender = 'male'
console.log(typeof start); // (출력) object
console.log(start); // (출력) {name: 'start', age: 30, gender: 'male'}
2) 객체 리터럴 방식 이용
객체 리터럴 이란 객체를 생성하는 표기법을 의미.
// 객체 리터럴 방식으로 start 객체 생성
var start = {
name : 'start',
age : 30,
gender: 'male'
};
console.log(typeof start); // (출력) object
console.log(start); // (출력) {name: 'start', age: 30, gender: 'male'}
3) 생성자 함수 이용 -> 뒤에서 다루겠음
객체 프로퍼티 읽기 / 쓰기 / 갱신
접근 2가지 방법
- 대괄호([]) 표기법
- 마침표(.) 표기법
var start = {
name : 'start',
major : 'engineering'
};
// 객체 프로퍼티 읽기
console.log(start.name); // (출력) start
console.log(start['name']); // (출력) start
// 객체 프로퍼티 갱신
start.major = ' management';
console.log(start,major); // (출력) management
console.log(start['major']); // (출력) management
// 객체 프로퍼티 동적 생성
start.age = 26;
console.log(start.age); // (출력) 30
* 접근하려는 프로퍼티가 표현식이거나 예약어일 경우 대괄호 표기법만을 이용해서 접근
ex )
start['full-name'] = 'start bar';
console.log(start['full-name']) // (출력) start bar
console.log(start.full-name); // (출력) NaN
// NaN = Not A Number
- > full-name 사이에 '-' 가 연산자로 착각해 나타나는 현상 . 예를 들어 1 - 'hello' 같은 경우 불가능한 연산이기에 NaN
for in 문과 객체 프로퍼티 출력
var start = {
name: 'start',
age: 26,
major: 'information'
};
// for in 문을 이용한 객체 프로퍼티 출력
var prop;
for (prop in start) {
console.log(prop, start[prop]);
}
(출력)
name start
age 26
major 'information'
객체 프로퍼티 삭제
*delete 연산자를 이용하여 삭제하지만 객체 프로퍼티만 삭제, 객체 자체를 삭제하지는 못한다!!
var start = {
name: 'start',
age: 26;
};
delete start.age;
console.log(start.age); // (출력) undefined
'Programming > JAVASCRIPT' 카테고리의 다른 글
[JAVASCRIPT] 함수와 프로토타입 체이닝(3) (0) 2019.12.04 [JAVASCRIPT]함수와 프로토타입 체이닝(2) (0) 2019.12.04 [JAVASCRIPT] 함수와 프로토타입 체이닝(1) (0) 2019.12.04 [JAVASCRIPT] 데이터 타입과 연산자(3) (0) 2019.12.04 [JAVASCRIPT] 데이터 타입과 연산자(2) (0) 2019.12.04