JavaScript에서 단항 부정 연산자(Unary Negation Operator, -)는 피연산자 앞에 붙여 사용하는 연산자로, 먼저 피연산자를 숫자로 변환한 뒤 그 값의 부호를 반전합니다.
동작 원리
단항 부정 연산자는 다음과 같은 두 단계로 동작합니다.
1. 피연산자를 숫자 타입으로 강제 변환합니다. (예: true → 1, false → 0, 16진수 문자열 '0xFF' → 255)
2. 변환된 숫자의 부호를 반전하여 음수로 만듭니다.
예제 코드
아래 코드를 실행하면 단항 부정 연산자가 다양한 타입의 값을 어떻게 처리하는지 확인할 수 있습니다.
<html>
<body>
<script>
var a = true; // 불리언 true
var b = '0xFF'; // 16진수 문자열
var f = false; // 불리언 false
var linebreak = "<br />";
var c = -a; // true → 1 → -1
var d = -b; // '0xFF' → 255 → -255
var e = -f; // false → 0 → -0
document.write("-true = " + c);
document.write(linebreak);
document.write("-'0xFF' = " + d);
document.write(linebreak);
document.write("-false = " + e);
</script>
</body>
</html>실행 결과
-true = -1
-'0xFF' = -255
-false = 0
결과 해설
-true = -1: 불리언 true가 숫자 1로 변환된 후 부호가 반전되어 -1이 됩니다.
-'0xFF' = -255: 16진수 문자열 '0xFF'는 십진수 255로 변환된 후 부호가 반전되어 -255가 됩니다.
-false = 0: 불리언 false가 숫자 0으로 변환되며, 부호를 반전해도 여전히 0(음의 영)이므로 화면에는 0으로 표시됩니다.
정리
단항 부정 연산자(-)는 단순히 부호를 바꾸는 것을 넘어, 피연산자를 자동으로 숫자로 변환하는 타입 변환 기능도 함께 수행합니다. 이러한 특성 때문에 문자열 형태의 숫자를 빠르게 숫자 타입으로 변환할 때 유용하게 활용될 수 있지만, 변환 규칙을 정확히 이해하지 못하면 의도치 않은 결과가 나올 수 있으므로 주의해서 사용하는 것이 좋습니다.