본문 바로가기

학원/JavaScript

4장. 데이터 타입과 변수

[ 목차 ]

1. 데이터타입

2. 원시타입

3. 객체타입

4. 변수

5. 변수의 선언

6. 변수의 중복 선언

7. 동적 타이핑

8. 변수 호이스팅

9. var 키워드로 선언된 변수의 문제점

 

1. 데이터타입

1) 프로그래밍 언어에서 사용할 수 있는 데이터의 종류를 의미

2) 코드에서 사용되는 모든 데이터는 메모리에 저장, 참조할 수 있어야 함

3) 한정된 공간을 효율적으로 사용하고 2진수 데이터로 메모리에 저장된 데이터를 다야한 형태로 사용하기 위해 존재

4) 자바스크립트의 모든 값은 데이터 타입을 가지며 총 7가지가 존재(원시타입과 객체타입으로 분류)

 

2. 원시타입

1) 변경 불가능한 값으로 pass-by-value(값에 의한 전달)

2) number

  1] 다른 언어와 달리 독특하게 하나의 숫자 타입만 존재

  2] 모든 수를 실수로 처리되며 정수로 표시된다 하더라도 사실은 실수

  3] 2진수, 8진수, 16진수 테이터 타입을 제공하기 않기 때문에 모두 10진수로 해석

  4] Infinity : 양의 무한대, -Infinity : 음믜 무한대, NaN : 산술 연산 불가

 

3) string

  1] 텍스트 데이터를 나타내는데 사용

  2] 대부분의 전세계의 문자를 표현 가능

  3] 작은 따옴표 도는 큰 따옴표 안에 텍스트를 넣어 생성

  4] 다른 언어와 다르게 원시 타입이며 변경 불가능 즉, 문자열이 한 번 생성되면 변경할 수 없음

  5] 배열처럼 인덱스를 통해 접근 가능하며, 이를 유사 배열이라 지칭

  6] 배열에 이미 생성된 문자열 일부를 변경해도 반영되지 않으며 한번 생성된 문자열은 read only

  7] 배열에 새로운 문자열을 재할당하는 것은 가능

  8] substring(*, @); : 문자열 *번 부터 @번 까지 출력

  9] toUpperCase(); : 문자열을 대문자로 출력

 

4) boolean

  1] true, false만 값으로 나타내는 타입

  2] 비어있는 문자열, null, undfined, 숫자 0은 false로 간주

 

5) undefined

  1] undefined 타입의 값은 undefined가 유일

  2] 선언 이후 값을 할당하지 않은 변수가 가지는 값

  3] 변수 선언에 확보된 메모리 공간을 할당이 될 때까지 빈 상태로 두지 않고 자바스크립트가 undefined로 초기화

  4] 개발자가 마음대로 undefined를 할당하면 본래 취지에 어긋나고 혼란을 줄 수 있으므로 null을 사용

 

6) null

  1] null 타입의 값은 null이 유일

  2] 자바스크립트는 대소문자를 구별하기 때문에 null, Null, NULL 등 다름

  3] 의도적으로 변수에 값이 없다는 것을 명시할 때 사용

  4] 함수가 호출되었으나 유효한 값을 반환할 수 없는 경우 명시적으로 null을 반환하기도 함

  5] null 타입을 확인할 때는 typeof 연산자가 아닌 일치 연산자 ===를 사용

 

7) symbol

  1] 변경 불가능한 원시 타입의 값

  2] 이름의 충돌 위험이 없는 유일한 객체의 프로퍼티 키를 만들기 위해 사용

  3] Symbol 함수를 호출해 생성하며, 생성된 심볼 값은 다른 심볼 값들과 다른 유일한 심볼 값

 

3. 객체타입

1) 데이터와 그 데이터에 관련한 동작을 모두 포함할 수 있는 개념적 존재

2) 즉, 이름과 값을 가지는 데이터를 의미하는 프로퍼티와 동작을 의미하는 메소드를 포함할 수 있는 독립적 주체

3) 자바스크립트는 객체 기반의 스크립트 언어로서 js를 이루고 있는 거의 모든 것이 객체

 

4. 변수

1) 프로그램에서 사용되는 데이터를 일정 기간 동안 기억하여 필요할 때에 다시 사용하기 위해 데이터에 고유의 이름은 식별자를 명시한 것

2) 변수에 명시한 고유한 식별자를 변수명이라 하며 변수로 참조할 수 잇는 데이터를 변수값이라 지칭

3) 식별자는 어떤대상을 유일하게 식별할 수 있는 이름을 의미하며, 변수명, 함수명, 프로퍼티명, 클래스명 등이 존재

4) 변수는 var, let, const 키워드를 사용하고 선언하고 할당 연산자를 사용해 값을 할당, 변수명을 사용해 변수에 저장된 값을 참조

 

5. 변수의 선언

1) 한번 쓰고 버리는 값이 아닌 일정 기간 유지할 필요가 있는 값에 사용

2) 변수를 사용하면 값의 의미가 명확해져서 코드의 가동성이 증가

3) 변수의 존재 목적을 쉽게 이해할 수 있도록 의미있는 변수명을 지정

4) 변수명은 식별자라고도 불리며 반드시 영문자, _, $로 시작해야 하며 이어지는 문자에 숫자가 사용 가능

5) 변수 선언시 var 키워드를 사용하며 등호는 변수에 값을 할당하는 할당 연산자

6) 값을 할당하지 않은 변수(선언만 된 변수)는 undefined로 초기값을 보유

 

6. 변수의 중복 선언

1) var 키워드로 선언한 변수는 중복선언이 가능, 즉 변수명이 같은 변수를 중복해 선언해도 에러가 발생하지 않음

2) 문법적으로 허용되지만 사용하지 않는 것이 좋음

 

7. 동적 타이핑

1) 변수의 타입 지정 없이 값이 할당되는 과정에서 값의 타입에 의해 자동으로 타입이 결정

2) 같은 변수에 여러 타입의 값을 할당할 수 있으며 이를 동적타이핑이라 지칭

 

8. 변수 호이스팅

1) var, function 등 모든 선언문이 해당 Scope의 선두로 옮겨진 것처럼 동작되는 특성을 의미

2) 모든 선언문이 선언되기 이전에 참조 가능

 

9. var 키워드로 선언된 변수의 문제점

1) 함수 레벨 스코프

  1] 전역 변수의 남발

  2] for loop 초기화식에서 사용한 변수를 for loop 외부 또는 전역에서 참조할 수 있음

 

2) var 키워드 생략 허용

  1] 의도하지 않은 변수의 전역화

 

3) 중복 선언 허용

  1] 의도하지 않은 변수값 변경

 

4) 변수 호이스팅

  1] 변수를 선언하기 전에 참조가 가능

 

5) 위 문제점을 보완하기 위해 let과 const 키워드가 이후 도입

'학원 > JavaScript' 카테고리의 다른 글

6장. 제어문 - 추가필요  (0) 2020.04.08
5장. 연산자  (0) 2020.04.08
3장. 자바스크립트의 기본 문법  (0) 2020.04.07
2장. 자바스크립트 개발 환경과 실행 방법  (0) 2020.04.07
1장. 자바스크립트란?  (0) 2020.04.07