자바스크립트 질문
본문
우선 그누 질문이 아닌점 양해 부탁드립니다..
Num = Number('-0.12');
자바스크립트 구문중 해당 구문으로 -0.12값을 넣으니 작동을 하지않아서 어떤게 문제인지 알려주시면 정말 감사하겠습니다.
답변 4
그 이전 코드에서 Num 이 const 로 정의되어 있지는 않은지 살펴보세요.
첫글자가 대문자면 사실 변수나 함수라기보다는 이미 정의된 객체나 클래스일 수도 있거든요.
값이 정상적으로 나오는데 어떻게 작동을 안하신다는건가요?
※ 아래의 디버깅 로직을 문제의 코드 바로 전/후에 추가하여;
Num 값이 변경되거나 잘못 사용되는 경우의
경고와 오류 메시지를 확인하여 보세요.
- Num이 덮어쓰이거나 하는 위치와 이유를 추적할 수 있을 것입니다.
★ 문제가 발생하는 코드 someFunction(Num); - 전/후에 (기존 코드에서)
. . .
// 문제가 발생하는 코드
someFunction(Num); // Num 값을 사용하는 특정 함수
. . .
★ Num 값을 사용하는 특정 함수나 로직 바로 전/후에 아래의 디버깅 로직을 추가
// 문제가 되는 Num 값 초기 선언 부분
let Num = Number('-0.12'); // 기존 코드
// . . .
// . . .
// 디버깅 로직 추가
console.log("=== Debugging Starts Here ===");
// 초기 선언 상태 확인
console.log("Initial Num value:", Num);
console.log("Initial Num type:", typeof Num);
// Num이 숫자인지 확인 (유효성 체크)
if (isNaN(Num)) {
console.error("Num is not a valid number. Check the initialization.");
} else {
console.log("Num is a valid number.");
}
// Num 값이 재할당되거나 덮어쓰기 되는지 추적
Object.defineProperty(window, 'Num', {
configurable: true,
enumerable: true,
set(value) {
console.warn(`Num is being reassigned to:`, value);
console.trace("Reassignment trace:");
Num = value;
},
get() {
console.log("Num value accessed:", Num);
return Num;
}
});
// 연산 시 Num 값 변화 체크
function validateNumUsage(value) {
if (typeof value !== "number") {
console.error("Num is being used as a non-number value:", value);
} else {
console.log("Num is being used correctly as a number:", value);
}
}
// 문제가 발생하는 코드
console.log("=== Before problematic function ===");
someFunction(Num);
console.log("=== After problematic function ===");
답변을 작성하시기 전에 로그인 해주세요.