Lecture 01: Data type - Primitive

송현민·2025년 1월 15일
0

1. 자바스크립트는 동적 타입(Dynamic Typing) 및 약타입(Weak Typing) 언어로 분류됩니다.

이는 변수의 타입이 고정되지 않고, 값을 할당하는 시점에 따라 동적으로 결정되며, 같은 변수에 여러 타입의 값을 자유롭게 할당할 수 있음을 의미합니다.


1-1) 타입 선언 불필요: 변수를 선언할 때 데이터 타입을 명시하지 않아도 됩니다.

let variable = 42; // number 타입
variable = "Hello"; // string 타입
variable = true; // boolean 타입

위 코드에서 variable의 타입은 할당된 값에 따라 자동으로 변경됩니다


1-2) 타입 추론(Type Inference): 자바스크립트 엔진은 변수에 할당된 값을 기반으로 변수의 타입을 추론합니다.

let name = "John"; // string으로 추론
let age = 30; // number로 추론

1-3) 재할당 가능: 같은 변수에 다른 데이터 타입의 값을 재할당할 수 있습니다. 이는 자바스크립트가 특정 타입에 제한되지 않음을 보여줍니다.

let data = 100; // number
data = "Data changed"; // string

2. Data type


2-1) Number

var integer = 10;        // 정수
var double = 10.12;      // 실수
var negative = -20;      // 음의 정수

2-2) String

var integer = 10;        // 정수
var double = 10.12;      // 실수
var negative = -20;      // 음의 정수

문자열의 불변성(Immutable)

var str = 'Hello'; // 첫 번째 구문
str = 'world';     // 두 번째 구문

첫 번째 구문:
'Hello'라는 문자열이 메모리에 생성됩니다.
변수 str은 'Hello'가 저장된 메모리 주소를 가리킵니다.
두 번째 구문:
'world'라는 새로운 문자열이 메모리에 생성됩니다.
변수 str은 이제 'world'가 저장된 메모리 주소를 가리키도록 변경됩니다.
이때, 기존의 'Hello' 문자열은 여전히 메모리에 존재하지만, 더 이상 변수 str이 이를 참조하지 않습니다.


2-3) Undefinded

원시 데이터 타입(Primitive Data Type) 중 하나로, 값이 할당되지 않은 상태를 나타냅니다. 이는 JavaScript 엔진이 자동으로 부여하는 값입니다.


예시


선언만 된 변수

let x;
console.log(x); // 출력: undefined

함수의 반환값이 없는 경우

function greet() {
  console.log("Hello!");
}
let result = greet(); // 함수 실행
console.log(result); // 출력: undefined

존재하지 않는 객체 속성에 접근

const person = { name: "Alice" };
console.log(person.age); // 출력: undefined

배열 요소가 비어 있는 경우

let arr = [1, , 3]; // 두 번째 요소가 비어 있음
console.log(arr[1]); // 출력: undefined

함수 매개변수에 값이 전달되지 않은 경우

function greet(name) {
  console.log(`Hello, ${name}!`);
}
greet(); // 출력: Hello, undefined!

2-4) Null

원시 데이터 타입(Primitive Data Type) 중 하나로, "값이 없음" 또는 "의도적으로 비어 있음"을 나타냅니다. 이는 개발자가 명시적으로 설정하는 값으로, 변수나 객체에 "아무 값도 없다"는 것을 표현하기 위해 사용됩니다.


예시


명시적으로 "값 없음"을 설정

let value = null; // 의도적으로 값 없음
console.log(value); // 출력: null

객체가 더 이상 유효하지 않을 때

let obj = { key: "value" };
obj = null; // 객체 참조 제거
console.log(obj); // 출력: null

DOM 요소가 존재하지 않을 때

let element = document.getElementById("nonexistent");
console.log(element); // 출력: null (요소가 없으므로)


2-5) Boolean

원시 데이터 타입(Primitive Data Type) 중 하나로, true 또는 false라는 두 가지 값만 가질 수 있습니다.


예시


리터럴 값

let isTrue = true;  // 참
let isFalse = false; // 거짓
console.log(typeof isTrue);  // 출력: "boolean"
console.log(typeof isFalse); // 출력: "boolean"

비교 연산의 결과

console.log(10 > 5);  // 출력: true
console.log(10 < 5);  // 출력: false
console.log(10 === 10); // 출력: true

Boolean() 함수

console.log(Boolean(1));       // 출력: true (1은 truthy)
console.log(Boolean(0));       // 출력: false (0은 falsy)
console.log(Boolean("Hello")); // 출력: true (비어 있지 않은 문자열은 truthy)
console.log(Boolean(""));      // 출력: false (빈 문자열은 falsy)

0개의 댓글