불변 데이터와 자바스크립트 수학 연산

목차

불변 데이터란 무엇인가요?

불변 데이터란, 한 번 생성된 후에는 변경할 수 없는 데이터를 의미합니다. 다시 말해, 불변 데이터는 생성 후에는 그 값을 변경할 수 없고 새로운 값을 생성하여 사용해야 합니다. 이는 데이터의 안정성을 보장하고 부작용을 최소화하는 장점을 가지고 있습니다.

자바스크립트에서는 기본 자료형인 문자열과 숫자가 불변 데이터입니다. 예를 들어, 다음과 같은 코드를 생각해봅시다.

let str = "Hello";
console.log(str.toUpperCase()); // 출력: "HELLO"
console.log(str); // 출력: "Hello"

위 코드에서 toUpperCase() 메서드를 호출하더라도 str 변수의 값은 변경되지 않고 원래 값을 그대로 유지합니다. 이는 toUpperCase() 메서드가 문자열 자체를 변경하는 것이 아니라 새로운 문자열을 반환하기 때문입니다.

자바스크립트에서의 수학 연산

자바스크립트에서 수학 연산은 주로 숫자 자료형인 number를 대상으로 이루어집니다. number 자료형은 불변 데이터이므로 수학 연산을 통해 새로운 값을 생성해야 합니다. 예를 들어, 다음과 같은 코드를 생각해봅시다.

let num1 = 5;
let num2 = 3;
let sum = num1 + num2;
console.log(sum); // 출력: 8
console.log(num1); // 출력: 5
console.log(num2); // 출력: 3

위 코드에서 num1num2 변수의 값을 더한 결과인 sum 변수는 새로운 값을 가지지만, num1num2 변수의 값은 변경되지 않고 유지됩니다.

또한, 자바스크립트에서는 Math 객체를 통해 다양한 수학 연산을 수행할 수 있습니다. 예를 들어, 다음과 같은 코드를 생각해봅시다.

let num = 4.7;
console.log(Math.round(num)); // 출력: 5
console.log(Math.floor(num)); // 출력: 4
console.log(Math.ceil(num)); // 출력: 5
console.log(Math.abs(-10)); // 출력: 10

위 코드에서 Math.round()는 가장 가까운 정수로 반올림하여 반환하고, Math.floor()는 주어진 값보다 작거나 같은 가장 큰 정수로 내림하여 반환합니다. Math.ceil()은 주어진 값보다 크거나 같은 가장 작은 정수로 올림하여 반환하며, Math.abs()는 주어진 값을 절댓값으로 반환합니다.

자바스크립트에서 불변 데이터와 수학 연산을 올바르게 이해하고 활용하면 안정적이고 예측 가능한 코드를 작성할 수 있습니다.

참고 자료