한번씩 읽고 가세요.
“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”
- Frederick Philips Brooks
Mythical Man-Month 저자
자료형이란?
사람은 10이나-15를 보면 숫자라는 것을 알 수있고, 안녕하세요? 를 보면 문자열이라는 것을 금방 알 수 있습니다. 하지만 컴퓨터에게 일을 시킬 때는 이것은 숫자이니 더하거나 뻬야하고, 저것은 문자열이니 더하거나 뺄 수 없다는 것을 따로 알려주어야 합니다. 이렇게 숫자나 문자열처럼 프로그램에서 처리할 자료의 유형을 지정해야 하는데, 이러한 자료의 형태를 '자료형'이라고 합니다.
자바스크립트의 자료형은 크게 '원시형 유형'과 '객체' 로 나뉘어집니다. 원시 유형은 하나의 값만 저장하는 자료형으로, 숫자와 문자열, 논리형, undefined,null, symbol 유형이 있습니다. 그리고 원시 유형 외에는 모두 객체 입니다.
숫자형
숫자형은 모든 프로그램에서 가장 기본이 되는 자료형 입니다. C나 자바 같은 프로그래밍 언어에서는 정수와 실수를 명확히 구별하고 정수도 크기에 따라 다른 자료형을 사용합니다. 하지만 자바스크립트에서는 정수와 실수를 함께 묶어서 '숫자형'이라고 합니다.
typeof (10) //'number'
typeof ("10") 'string
typeof (3.145) //'number'
자바스크립트에서는 큰따옴표 없이 입력하면 숫자로 인식합니다. 하지만 숫자라고 해도 큰따옴표로 묶으면 문자열로 인식하므로 주의해야 합니다.
문자열
문자열 또는 string 자료형의 작은 따옴표(')나 큰 따옴표(")로 묶은 데이터를 의미합니다. 단 큰 따옴표이든 작은 따옴표이든 문자열의 앞뒤에 붙이는 따옴표는 같아야 합니다.
typeof ("안녕하세요?) // 'string'
typeof ("10") //'string'
typeof ("") // 'string' 빈 문자열
논리형
논리 자료형은 어떤 필드의 참/거짓을 나타내는 자료형입니다.
boolean : boolean 자료형의 데이터로는 참(true,1) 또는 거짓(false,0) 만 있습니다.
10 > 2 //true
2 > 10 //false
undefined, null
undefined는 원시값(Primitive Type)으로, 선언한 후에 값을 할당하지 않은 변수나 값이 주어지지 않은 인수에 자동으로 할당된다. 이 값은 전역 객체의 속성 중 하나로, 전역 스코프에서의 변수이기도 하다. 따라서 undefined 변수의 초기 값은 undefined 원시 값이다.
- 값을 할당하지 않은 변수
- 메서드와 선언에서 변수가 할당받지 않은 경우
- 함수가 값을 return 하지 않았을 때
null은 원시값(Primitive Type) 중 하나로, 어떤 값이 의도적으로 비어있음을 표현한다. undefined는 값이 지정되지 않은 경우를 의미하지만, null의 경우에는 해당 변수가 어떤 객체도 가리키고 있지 않다는 것을 의미한다.
객체
자바스크립트에서 객체란, 여러 개의 원시 유형을 하나로 묶어 놓은 것이라고 생각할 수 있습니다. 자바스크립트는 배열이나 함수도 객체로 취급합니다.