if (+enteredAge < 1) {
return;
}
가끔 예제를 학습할 때 이렇게 변수 앞에 +가 붙은 경우를 보곤 합니다. 왜 그런걸까요?
const [enteredAge, setEnteredAge] = useState("");
먼저 useState
를 사용하는 enteredAge
변수가 있습니다.
if (+enteredAge < 1) {
return;
}
이 같은 예제는 나이가 1세 미만일 경우 submit이 안되는 예제인데 +를 사용하는 이유는 다음과 같습니다.
변수를 선언하는 과정에서 enteredAge
는 데이터타입이 숫자가 아니기 때문에 + 연산자를 앞에 붙여 숫자로 변환시키는 것입니다.
이런 방법을 단항 더하기, Unary Plus라고 합니다.
문자열을 숫자로 변경하는 방법에는 parseInt()
메소드를 사용하는 방법도 있습니다.
parseInt()
메소드와 단항 더하기의 차이를 알아보자면
parseInt("5.51")
을 하게되면 5를 반환하나 +"5.51"
을 하면 5.51을 반환합니다.parseInt()
는 문자열에서 숫자를 파싱하며 문자열을 걸러내지만 단항 더하기는 모든 입력을 거름 없이 받아들입니다. 따라서 parseInt("5개")
를 하면 5를 반환하지만 +"5개"
를 하면 NaN
을 반환합니다.