Programming/JAVASCRIPT

[JAVASCRIPT] 데이터 타입과 연산자(1)

100winone 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