타입
자바스크립트의 기본 타입은 크게 원시 타입과 객체 타입으로 구분할 수 있다.
원시 타입(primitive type)은
1. 숫자(number)
2. 문자열(string)
3. 불리언(boolean)
4. 심볼(symbol) : ECMAScript 6부터 제공됨
5. undefined
객체 타입(object type)은
6. 객체(object)
- 숫자
자바 스크립트는 다른 언어와 달리 정수와 실수를 구분하지 않고, 모든 수를 실수 하나로 표현한다.
또한, 매우 큰 수나 매우 작은 수를 표현할 때는 e 표기법을 사용할 수 있다.
var firstNum = 10; // 소수점을 사용하지 않은 표현
var secondNum = 10.00; // 소수점을 사용한 표현
var thirdNum = 10e6; // 10000000
var fourthNum = 10e-6; // 0.00001
- 문자열
자바스크립트에서 문자열은 큰따옴표("")나 작은따옴표('')로 둘러싸인 문자의 집합을 의미한다.
var firstStr = "이것도 문자열입니다."; // 큰따옴표를 사용한 문자열
var secondStr = '이것도 문자열입니다.'; // 작은따옴표를 사용한 문자열
- 불리언
참과 거짓으로 표현한다.
자바스크립트에서 불리언 값은 예약어인 true와 false를 사용하여 나타낼 수 있다.
var firstNum = 10;
var secondNum = 11;
document.getElementById("result").innerHTML = (firstNum == secondNum); // false
- 객체
자바 스크립트의 기본 타입은 객체이다.
객체는 여러 프로퍼티(property)나 메소드(method)를 같은 이름으로 묶어놓은 일종의 집합체이다.
var dog = { name: "해피", age: 3 }; // 객체의 생성
// 객체의 프로퍼티 참조
document.getElementById("result").innerHTML =
"강아지의 이름은 " + dog.name + "이고, 나이는 " + dog.age + "살 입니다.";
타입 변환
자바 스크립트는 타입 검사가 유연한 언어이다.
자바 스크립트의 변수는 타입이 정해져 있지 않으며, 같은 변수에 다른 타입의 값을 대입할 수 있다.
var num = 20; // Number 타입의 20
num = "이십"; // String 타입의 "이십"
var num; // 한 변수에 여러 번 대입할 수는 있지만, 변수의 재선언은 할 수 없습니다. 재선언문은 무시됩니다.
묵시적 타입 변환
자바 스크립트는 문자열 값이 오길 기대하는 곳에 숫자가 오더라도 자바 스크립트가 자동으로 타입을 변환하여 준다.
10 + "문자열"; // 문자열 연결을 위해 숫자 10이 문자열로 변환됨.
"3" * "5"; // 곱셈 연산을 위해 두 문자열이 모두 숫자로 변환됨.
1 - "문자열"; // NaN (정의되지 않거나 표현할 수 없는 값이라는 의미)
명시적 타입 변환
묵시적 타입 변화를 많이 사용하지만 명시적 타입 변환도 많이 사용한다.
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
숫자 → 문자열
1. toExponential() : 정수 부분은 1자리, 소수 부분은 입력받은 수만큼 e 표기법을 사용하여 숫자를 문자열로 변환함.
2. toFixed() : 소수 부분을 입력받은 수만큼 사용하여 숫자를 문자열로 변환함.
3. toPrecision() : 입력받은 수만큼 유효 자릿수를 사용하여 숫자를 문자열로 변환함.
불리언 → 문자열
String(true); // 문자열 "true"
false.toString(); // 문자열 "false"
날짜 → 문자열 or 숫자
getDate() | 날짜 중 일자를 숫자로 반환함. (1 ~ 31) |
getDay() | 날짜 중 요일을 숫자로 반환함. (일요일 : 0 ~ 토요일 : 6) |
getFullYear() | 날짜 중 연도를 4자리 숫자로 반환함. (yyyy년) |
getMonth() | 날짜 중 월을 숫자로 반환함. (1월 : 0 ~ 12월 : 11) |
getTime() | 1970년 1월 1일부터 현재까지의 시간을 밀리초(millisecond) 단위의 숫자로 반환함. |
getHours() | 시간 중 시를 숫자로 반환함. (0 ~ 23) |
getMinutes() | 시간 중 분을 숫자로 반환함. (0 ~ 59) |
getSeconds() | 시간 중 초를 숫자로 반환함. (0 ~ 59) |
getMilliseconds() | 시간 중 초를 밀리초(millisecond) 단위의 숫자로 반환함. (0 ~ 999) |
문자열 →숫자
parseInt() | 문자열을 파싱하여 특정 진법의 정수를 반환함. |
parseFloat() | 문자열을 파싱하여 부동 소수점 수를 반환함. |
불리언 → 숫자
Number(true); // 숫자 1
Number(false); // 숫자 0
변수
데이터(data)를 저장할 수 있는 메모리 공간을 의미하며, 그 값이 변경될 수 있다.
var 키워드를 사용해서 변수를 선언한다.
var month; // 변수의 선언
var date = 25; // 변수의 선언과 동시에 초기화
month = 12; // 변수의 초기화
변수는 선언을 먼저 하고 초기화를 진행하거나 선언과 동시에 초기화를 진행할 수 있다. 쉼표를 활용하여 여러 변수를 동시에 선언하거나 초기화할 수 있다.
변수의 타입과 초깃값
변수의 타입이 정해져 있지 않기 때문에 같은 변수에 다른 타입의 값을 다시 대입할 수 있다. 그러나 한 번 선언된 변수는 재선언할 수 없다.
var num = 10; // 변수의 선언과 함께 초기화
num = [10, 20, 30]; // 배열 대입
var num; // 이 재선언문은 무시됨.
변수의 이름
- 변수는 이름을 가지고 식별하므로, 변수의 이름은 식별자(identifier)이다.
- 변수의 이름은 영문자(대소문자), 숫자, 언더스코어(_) 또는 달러($)로만 구성된다.
- 숫자와의 구분을 빠르게 하려고 숫자로는 시작할 수 없다.
- 변수의 이름은 대소문자를 구분하며, 자바스크립트 언어에서 예약된 키워드는 이름으로 사용할 수 없다.
'Language > JavaScript' 카테고리의 다른 글
[JavaScript] 제어문과 배열 (0) | 2022.07.25 |
---|---|
[JavaScript] 자바 스크립트 시작 (0) | 2022.06.01 |