





let msg = 'hello';
msg[0] = 'H'; // ❌ 안 바뀜!
console.log(msg); // 'hello' 그대로임
msg = 'Hello'; // ✅ 이렇게 새로 할당해야 함
let age = 20;
age + 1; // 계산만 했을 뿐
console.log(age); // 20 (그대로임)
age = age + 1; // ✅ 새 값을 다시 넣어줘야 바뀜
console.log(age); // 21
원시 타입➡불변성을 갖고 있음🤩
수정하려면❓➡새로운 값을 만들어 다시 할당해야함❗










String ➡ Number
Number ➡ String
Boolean ➡ Number











String(5); // "5"
String(null); // "null"
String(undefined); // "undefined"









Number("123.45"); // 123.45
parseInt("123.45abc"); // 123
parseFloat("123.45abc");// 123.45
parseInt("abc123"); // NaN


// 숫자 두 개
let a = 10;
let b = 3;
// 더하기
console.log(a + b); // 13
// 빼기
console.log(a - b); // 7
// 곱하기
console.log(a * b); // 30
// 나누기 (몫)
console.log(a / b); // 3.333...
// 나머지
console.log(a % b); // 1
let num = -7.8;
// 절댓값
console.log(Math.abs(num)); // → 7.8 (음수를 양수로 바꿔줌)
// 올림
console.log(Math.ceil(num)); // → -7 (소수점 올림: -7.8 → -7)
// 내림
console.log(Math.floor(num)); // → -8 (소수점 내림: -7.8 → -8)
// 반올림
console.log(Math.round(num)); // → -8 (소수점 반올림: -7.8 → -8)
// 소수점 제거 (버림)
console.log(Math.trunc(num)); // → -7 (소수점 버림: 그냥 소수점 잘라냄)
// 제곱
console.log(Math.pow(2, 3)); // → 8 (2의 3제곱: 2 * 2 * 2)
// 제곱근
console.log(Math.sqrt(16)); // → 4 (16의 제곱근)
// 최댓값
console.log(Math.max(1, 5, 10)); // → 10 (가장 큰 수)
// 최솟값
console.log(Math.min(1, 5, 10)); // → 1 (가장 작은 수)
// 랜덤 숫자
console.log(Math.random()); // → 0 이상 1 미만의 랜덤한 소수 (ex. 0.72435...)
