변수와 상수 선언
자바스크립트에서 변수와 상수는 값을 저장하기 위한 식별자(identifier)이다.
변수는 값이 변할 수 있는 데이터에 대해 사용되며, 상수는 값을 한 번 할당하면 변경할 수 없는 데이터에 사용된다.
변수 선언 let
변수 선언은 let 키워드를 사용한다. let을 사용하여 변수를 선언하면 해당 변수는 블록 범위(block scope)를 갖게 된다.
블록 범위는 변수가 선언된 중괄호({}) 블록 내에서만 유효하다는 것을 의미한다. 따라서 let으로 선언된 변수는 블록 밖에서는 접근할 수 없다.
let age = 23;
age라는 변수를 선언하고 값으로 25를 할당했다.
let age = 23;
let age = 24; // 오류: 변수 age가 이미 선언되었음
let은 변수 재선언을 허용하지 않는다. 같은 스코프 내에서 동일한 이름으로 변수를 다시 선언하면 오류가 발생한다.
상수 선언 const
상수 선언은 const 키워드를 사용한다.
const pi = 3.14;
pi라는 상수를 선언하고 값으로 3.14를 할당했다.
var의 사용시 주의점
var name = "Isaac";
var는 과거 자바스크립트에서 사용되던 변수 선언 키워드로, ES6 이후 자바스크립트에서는 let과 const를 사용하여 변수를 선언하는 것이 권장되고 있다.
변수의 스코프
var로 선언한 변수는 함수 스코프(function scope)를 가진다. 즉, 변수의 유효 범위(scope)는 함수 내부로 제한된다. 함수 내에서 선언된 var 변수는 함수 외부에서 접근할 수 없다.
호이스팅(Hoisting)
var로 선언한 변수는 호이스팅이 발생한다. 호이스팅이란 변수 선언이 해당 스코프의 최상단으로 끌어올려지는 현상을 말한다. 즉, 변수를 선언하기 전에도 사용할 수 있다. 하지만 값은 선언 이전에는 undefined로 초기화된다.
중복 선언 허용
var로 같은 이름의 변수를 중복해서 선언할 수 있다. 이 경우 이전에 선언한 변수가 무시되고 새로운 변수가 재할당된다.
블록 스코프 지원하지 않음
var로 선언한 변수는 블록 스코프(block scope)를 지원하지 않는다. if문이나 for문과 같은 블록 내에서 선언한 변수도 함수 스코프 내에서 동일한 범위를 가지며, 변수 누출(variable leakage)이 발생할 수 있는 위험이 있다.
데이터 타입
숫자(Number) 타입
정수와 소수점을 포함한 숫자를 표현하는 방법이다.
let number = 42;
number라는 변수를 선언하고 값으로 25를 할당했다.
산술 연산
숫자 타입에 대해 다양한 산술 연산을 수행하여 숫자들 간의 덧셈, 뺄셈, 곱셈, 나눗셈 등을 수행할 수 있다.
let x = 10;
let y = 5;
let sum = x + y;
let difference = x - y;
let product = x * y;
let quotient = x / y;
기타 숫자 연산자
숫자 타입에서는 다양한 연산자를 사용할 있으며, 나머지 연산자(%), 증가 연산자(++), 감소 연산자(--) 등이 있다.
let remainder = x % y; // 나머지 연산자
let increment = ++x; // 증가 연산자
let decrement = --y; // 감소 연산자
문자열(String) 타입
문자열 타입은 텍스트 데이터를 표현한다.
let name = "Isaac";
불리언(Boolean) 타입
불리언 타입은 참(True)과 거짓(False)을 나타낸다.
let isTrue = true;
배열(Array) 타입
배열 타입은 여러 개의 값들을 순서대로 저장한다.
let numbers = [1, 2, 3, 4, 5];
객체(Object) 타입
객체 타입 다양한 속성과 값을 가진다.
let person = {
name: "Isaac",
age: 23,
};
데이터 타입 변환
숫자로의 변환
parseInt() 함수나 parseFloat() 함수를 사용하여 문자열을 정수나 부동소수점 숫자로 변환할 수 있으며, 이 함수들은 문자열을 분석하고 숫자로 변환한다.
let numberAsString = "100";
let parsedNumber = parseInt(numberAsString);
console.log("Parsed Number:", parsedNumber); // 출력 결과: 100
문자열로의 변환
숫자나 다른 데이터 타입을 문자열로 변환할 때는 toString() 메서드를 사용하거나 빈 문자열 ""과 값을 더하는 방식을 사용할 수 있다.
let number = 100;
let numberAsString = number.toString();
console.log("Number as String:", numberAsString); // 출력 결과: "100"
let booleanValue = true;
let booleanAsString = "" + booleanValue;
console.log("Boolean as String:", booleanAsString); // 출력 결과: "true"
불리언으로의 변환
명시적인 방법으로 불리언 값으로의 변환은 Boolean() 함수를 사용하는 것이다.
일반적인 규칙은 falsy한 값(예: 0, 빈 문자열, null, undefined, NaN)은 false로, 그 외의 값은 true로 변환된다.
let number = 100;
let booleanValue = Boolean(number);
console.log("Number as Boolean:", booleanValue); // 출력 결과: true
let emptyString = "";
let emptyStringAsBoolean = Boolean(emptyString);
console.log("Empty String as Boolean:", emptyStringAsBoolean); // 출력 결과: false