자바스크립트의 변수와 상수
자바스크립트에서 변수를 선언하는 방법은 세 가지가 있습니다: var
, let
, 그리고 const
입니다. 각각의 선언 방법은 스코프와 재할당 가능성 측면에서 차이가 있습니다.
1. var
- 함수 스코프를 가집니다.
- 재할당이 가능합니다.
- 중복 선언이 가능합니다.
var name = 'Alice';
console.log(name); // Alice
var name = 'Bob';
console.log(name); // Bob
name = 'Charlie';
console.log(name); // Charlie
2. let
- 블록 스코프를 가집니다.
- 재할당이 가능합니다.
- 중복 선언이 불가능합니다.
let age = 25;
console.log(age); // 25
// let age = 30; // SyntaxError: Identifier 'age' has already been declared
age = 30;
console.log(age); // 30
3. const
- 블록 스코프를 가집니다.
- 재할당이 불가능합니다.
- 중복 선언이 불가능합니다.
const birthYear = 1995;
console.log(birthYear); // 1995
// birthYear = 2000; // TypeError: Assignment to constant variable.
// const birthYear = 2000; // SyntaxError: Identifier 'birthYear' has already been declared
자바스크립트의 데이터 타입
자바스크립트는 동적 타이핑(dynamic typing)을 지원하는 언어로, 변수의 타입이 런타임에 결정됩니다. 기본 데이터 타입은 다음과 같습니다.
1. 기본 데이터 타입 (Primitive Types)
- 문자열 (String)
let greeting = 'Hello, World!';
let singleQuote = 'Single quote string';
let doubleQuote = "Double quote string";
let templateLiteral = `Template literal with variable ${greeting}`;
- 숫자 (Number)
let integer = 42;
let float = 3.14;
let negative = -100;
let notANumber = NaN; // Not a Number
let infinity = Infinity;
- 불리언 (Boolean)
let isAvailable = true;
let isCompleted = false;
- null
let emptyValue = null;
- undefined
let uninitializedVariable;
console.log(uninitializedVariable); // undefined
- 심볼 (Symbol)
let uniqueId = Symbol('id');
console.log(uniqueId); // Symbol(id)
2. 객체 데이터 타입 (Object Type)
자바스크립트의 객체는 키-값 쌍의 컬렉션입니다. 객체, 배열, 함수는 모두 객체 데이터 타입에 속합니다.
- 객체 (Object)
let person = {
name: 'John',
age: 30,
isStudent: false
};
console.log(person.name); // John
console.log(person['age']); // 30
- 배열 (Array)
let numbers = [1, 2, 3, 4, 5];
console.log(numbers[0]); // 1
console.log(numbers.length); // 5
- 함수 (Function)
함수는 일급 객체(first-class citizen)로, 변수에 할당되거나 다른 함수의 인자로 전달될 수 있습니다.
function add(a, b) {
return a + b;
}
let result = add(10, 20);
console.log(result); // 30
let multiply = function (a, b) {
return a * b;
};
console.log(multiply(5, 3)); // 15
동적 타이핑
자바스크립트는 동적 타입 언어이므로, 변수의 타입은 런타임에 결정되고 필요에 따라 변경될 수 있습니다.
let variable = 42;
console.log(typeof variable); // number
variable = 'Hello, World!';
console.log(typeof variable); // string
variable = true;
console.log(typeof variable); // boolean
결론
자바스크립트의 변수와 상수, 그리고 다양한 데이터 타입에 대해 이해하는 것은 프로그래밍을 시작하는 데 있어 매우 중요합니다. 이러한 기초를 탄탄히 다진 후, 자바스크립트의 고급 기능과 다양한 응용 분야로 나아갈 수 있습니다.