본문 바로가기

공부/JavaScript

TCP school | 2. 타입

7. 기본 타입

< 기본 타입 >

primitive type(원시 타입)

1. number

2. string

3. boolean

4. symbol

5. undefined

object type

6. object

 

< number >

 : 다른 언어와 달리 정수와 실수 구분하지 않고 모든 수를 실수 하나로만 표현.

 : 매우 큰 수나 매우 작은 수는 e 표기법 사용.

 

< string >

 : 숫자와 문자열 더하는 것 가능. 숫자를 문자열로 자동 변환하여 두 문자열을 연결.

 

< symbol >

 : ECMAScript 6부터 제공됨.

 : 유일하고 변경할 수 없는 타입으로 객체의 프로퍼티를 위한 식별자로 사용 가능.

 : 익스플로러에서 지원하지 않음.

 

< typeof 연산자 >

 : 피연산자의 타입을 반환하는 피연산자가 단 하나뿐인 연산자.

 

< null과 undefined >

 null 

 : object 타입.

 : 아직 '값'이 정해지지 않은 것.

undefined

 : 아직 '타입'이 정해지지 않은 것.

 : 초기화되지 않은 변수나 존재하지 않는 값에 접근할 때 반환됨.

null ==  undefined; // true
null === undefined; // false

 

< object >

 : 자바스크립트의 기본 타입은 객체.

 : 객체란 실생활에서 우리가 인식할 수 있는 사물.

 : 객체는 여러 프로퍼티나 메소드를 같은 이름으로 묶어놓은 일종의 집합체.


8. 타입 변환

타입 변환(type conversion)

 : 자바스크립트는 타입 검사가 매우 유연한 언어.

 : 자바스크립트의 변수는 타입이 정해져 있지 않으며, 같은 변수에 다른 타입의 값을 다시 대입할 수도 있음.

 

묵시적 타입 변환(implicit type conversion)

 : 특정 타입의 값을 기대하는 곳에 다른 타입의 값이 오면, 자동으로 타입을 변환.

10 + "문자열"; // 문자열 연결을 위해 숫자 10이 문자열로 변환됨.
"3" * "5";     // 곱셈 연산을 위해 두 문자열이 모두 숫자로 변환됨.
1 - "문자열";  // NaN

NaN(Not a Number)

 :  정의되지 않은 값이나 표현할 수 없는 값.

 : Number 타입의 값.

 : 0을 0으로 나누거나, 숫자로 변환할 수 없는 피연산자로 산술 연산을 시도하는 경우에 반환되는 읽기 전용 값.

 

명시적 타입 변환(explicit type conversion)

명시적 타입 변환을 위해 자바스크립트가 제공하는 전역 함수

1. Number()

2. String()

3. Boolean()

4. Object()

5. parseInt()

6. parseFloat()

Number("10"); // 숫자 10
String(true); // 문자열 "true"
Boolean(0);   // 불리언 false
Object(3);    // new Number(3)와 동일한 결과로 숫자 3

 

숫자를 문자열로 변환

 : 가장 간단한 방법은 String() 함수 사용하는 것. 또한 null과 undefined를 제외한 모든 타입이 가지고 있는 toString() 메소드를 사용할 수도 있음.

숫자 객체는 숫자를 문자열로 변환하는 메소드

1. toExponential() : 정수 부분은 1자리, 소수 부분은 입력받은 수만큼 e표기법을 사용하여 숫자를 문자열로 변환.

2. toFixed() : 소수 부분을 입력받은 수만큼 사용하여 숫자를 문자열로 변환.

3. toPrecision() : 입력받은 수만큼 유효 자릿수를 사용하여 숫자를 문자열로 변환.

* 메소드란 객체의 프로퍼티 값으로 함수를 갖는 프로퍼티를 의미함.

 

불리언 값을 문자열로 변환

 : String() 함수와 toString() 메소드를 사용하는 방법이 있음.

 

날짜를 문자열이나 숫자로 변환

 : 문자열로 변환하는 방법에는 String() 함수와 toString() 메소드를 사용하는 방법이 있음.

 : 자바스크립트에서 날짜 객체는 문자열과 숫자로 모두 변환할 수 있는 유일한 타입.

날짜를 숫자로 변환하는 메소드

1. getDate() : 일자(1 ~ 31)

2. getDay() : 요일(일요일:0 ~ 토요일:6)

3. getFullYear() : 연도(yyyy년)

4. getMonth() : 월(1월:0 ~ 12월:11)

5. getTime() : 1970년 1월 1일부터 현재까지의 시간을 밀리초(millisecond) 단위의 숫자로 반환

6. getHours() : 시(0 ~ 23)

7. getMinutes() : 분(0 ~ 59)

8. getSeconds() : 초(0 ~ 59)

9. getMilliseconds() : 초를 밀리초(millisecond) 단위의 숫자로 반환(0 ~ 999)

 

문자열을 숫자로 변환

 : Number() 함수

문자열을 숫자로 변환해주는 전역 함수

1. parseInt() : 문자열을 파싱하여 특정 진법의 정수를 반환

2. parseFloat() : 문자열을 파싱하여 부동 소수점 수를 반환

 

불리언 값을 숫자로 변환

 : Number() 함수

Number(true);  // 숫자 1
Number(false); // 숫자 0

9. 변수

변수의 선언과 초기화

 : 변수(variable)란 데이터를 저장할 수 있는 메모리 공간을 의미하며, 값 변경될 수 있음.

 : var

선언되지 않은 변수를 사용하려고 하거나 접근하면 오류가 발생하지만, 선언되지 않은 변수를 초기화할 경우에는 자동으로 선언을 하고 초기화 진행

var month; // month라는 이름의 변수 선언
date = 25; // date라는 이름의 변수를 묵시적으로 선언

쉼표(,) 연산자를 이용하여 여러 변수 동시에 선언하거나 초기화 가능

var month, date;             // 여러 변수를 한 번에 선언
var hours = 7, minutes = 15; // 여러 변수를 선언과 동시에 초기화
month = 10, date = 5;        // 여러 변수를 한 번에 초기화

 

변수의 타입과 초깃값

같은 변수에 다른 타입의 값을 다시 대입할 수는 있지만, 한 번 선언된 변수를 재선언 할 수는 없음.

var num = 10;        // 변수의 선언과 함께 초기화
num = [10, 20, 30];  // 배열 대입
var num;             // 이 재선언문은 무시됨.

선언만 되고 초기화하지 않은 변수는 undefined 값을 갖음

var num;  // undefined
num = 10; // 10

 

변수의 이름

변수의 이름은 식별자.

 

'공부 > JavaScript' 카테고리의 다른 글

TCP school | 4. 제어문  (0) 2021.03.18
TCP school | 3. 연산자  (0) 2021.03.18
TCP school | 1. 자바스크립트 시작  (0) 2021.03.18
JavaScript의 역사  (0) 2021.03.17
JavaScript : 드림코딩  (0) 2020.11.09