변수(Variable) 란 ?
- 상황에 따라 변할 수 있는 값 이라고 정의를 할 수 있습니다.
- 어떠한 물건을 담기 위해 필요한 상자 라고 비유를 할 수 있습니다.
변수의 선언 및 할당
- 자바스크립트에서는 var, let 키워드로 선언을 할 수 있습니다.
- ES6 이전 버전에서는 var 로 변수 선언을 할 수 있습니다.
- ES6 이후 버전에서는 새로운 변수 선언 방식으로 let 으로 변수 선언을 할 수 있습니다.
- let 키워드는 블록 범위의 로컬 변수를 선언하는데 사용됩니다.
글로벌 선언도 가능하지만, 로컬에서 let 키워드를 사용하여 동일한 변수를 선언을 하게 된다면,
다른 변수로 인식을 하게 됩니다.
- 위의 코드를 알아보겠습니다.
1. let x = 1 // 글로벌로 선언 된 변수 x 의 값은 1 입니다.
2. x = 2 // 글로벌로 선언 된 변수 x 의 값을 2 로 변경하였습니다.
3. 첫번째 if 문에서 x 의 값을 3 으로 선언하였습니다.
새로운 let 키워드를 사용하지않고, 기존에 선언하였던 변수 x 의 값을 3 으로 변경하였습니다.
4. 두번째 if 문에서는 새로운 let 키워드를 사용하여 변수 x 의 값을 4 로 선언하였습니다.
5. 위의 과정을 거쳤을 때 마지막 console 로그를 찍었을 때 x 의 값은 어떻게 될까요 ?
답은 4 입니다.
그 이유는 두번째 if 문의 let x = 4 는 로컬 변수로서 글로벌 변수 x 와는 전혀 다른 변수로 인식을 하게 되어서 입니다.
위의 코드를 실행하면 아래와 같은 값이 리턴됩니다.
1. x = 1 (글로벌 변수)
2. x = 2 (글로벌 변수)
3. x = 3 (글로벌 변수)
4. x = 3 (글로벌 변수)
5. x = 4 (로컬 변수)
6. x = 3 (글로벌 변수)
- var, let 외에 변수 키워드가 하나 더 있습니다.
바로 const 키워드입니다.
const 키워드는 Constants 로 상수를 뜻합니다.
var, let 과 같은 변수와 반대되는 고정 값이라고 보면 될거 같습니다.
- 상수 x 의 값을 10 으로 선언하였습니다.
그 후에 x 의 값을 5 로 변경을 하려고 합니다.
그러면 어떻게 될까요 ?
Uncaught TypeError: Assignment to constant variable. 이라는 오류가 발생하게 됩니다.
상수 값을 다른 값으로 변경하려 했기 때문에 오류가 발생한 것입니다.
- const 키워드 같은 경우에는 변하지 않는 값을 필요로 할때 사용하면 될 것입니다.
타입(Type) 이란 ?
- 프로그래밍 언어에서 사용할 수 있는 데이터(문자, 숫자, 불리언 등)의 종류 입니다.
- 원시 타입(Primitive Data Type) 과 객체 타입(Object Type) 으로 나누어지게 됩니다.
원시 타입(Primitive Data Type) : 변경 불가능한 값(immutable value) 이며 pass-by-value(값에 의한 전달) 입니다.
- Number : Integer(1, 2, 3, 4 등의 정수) 또는 floating-point(3.1452 등 부동소수점) 등의 숫자
ㆍ C나 Java의 경우, 정수와 실수를 구분하여 int, long, float, double 등 다양한 숫자 타입이 존재하지만,
JavaScript는 하나의 숫자 타입만 존재합니다.
하나의 숫자 타입이라는건 모든 수를 실수를 처리하며 정수만을 표현하기 위한 데이터 타입은 없습니다.
- String : 문자열 타입으로서, 텍스트 데이터를 나타냄
ㆍ 대부분의 전세계 문자를 표현할 수 있으며, 문자열은 작은 따옴표(' ') 또는 큰 따옴표(" ") 안에 택스를 넣어 생성합니다.
ㆍ 일반적인 표기법은 작은 따옴표를 사용하는 것 입니다.
- Boolean : 불리언 타입의 값은 논리적으로 참과 거짓을 나타내는 true와 false 뿐입니다.
- null : 변수에 값이 없다는 것을 명시할 때 사용합니다. 이는 변수가 기억하는 메모리의 참조 정보를 제거하는 의미입니다.
ㆍ null 타입의 값은 null 이 유일합니다.(JavaScript는 대소문자를 구별하므로 Null, NULL 과는 다릅니다.)
- undefined : 변수 선언 이후 값이 할당되지 않은 변수는 undefined 라는 값을 가지게 됩니다.
즉, 선언은 되었지만 값이 할당되지 않은 변수에 접근, 존재하지 않는 객체에 접근할 경우 undefined로 반환됩니다.
객체 타입(Object Type) : 데이터와 그 데이터에 관련한 동작(절차, 방법, 기능)을 모두 포함할 수 있는 존재입니다.
Javascript는 객체 기반 스크립트 언어로서, 이루고 있는 거의 모든 것들이 객체입니다.
원시 타입을 제외한 나머지 값(배열, 함수, 표현식 등)은 모두 객체입니다.
또한 객체는 pass-by-reference(참조에 의한 전달) 방식으로 전달됩니다.
'JavaScript > 1' 카테고리의 다른 글
배열 다루기(Array Methods) (0) | 2020.03.31 |
---|---|
문자열 다루기(String Methods) (0) | 2020.03.31 |
반복문(for 문, for..in 문, for..of 문, while 문) (0) | 2020.03.31 |
배열(Arrary)과 객체(Object) (0) | 2020.03.30 |
조건문(Conditional)과 함수(Function) (0) | 2020.03.24 |