답변 4개
11개월 전
※ 아래의 디버깅 로직을 문제의 코드 바로 전/후에 추가하여;
Num 값이 변경되거나 잘못 사용되는 경우의
경고와 오류 메시지를 확인하여 보세요.
- Num이 덮어쓰이거나 하는 위치와 이유를 추적할 수 있을 것입니다.
★ 문제가 발생하는 코드 someFunction(Num); - 전/후에 (기존 코드에서)
. . .
// 문제가 발생하는 코드
someFunction(Num); // Num 값을 사용하는 특정 함수
. . .
★ Num 값을 사용하는 특정 함수나 로직 바로 전/후에 아래의 디버깅 로직을 추가
</p>
<p>// 문제가 되는 Num 값 초기 선언 부분
let Num = Number('-0.12'); // 기존 코드
// . . .</p>
<p>// . . .</p>
<p> </p>
<p>// 디버깅 로직 추가
console.log("=== Debugging Starts Here ===");</p>
<p>// 초기 선언 상태 확인
console.log("Initial Num value:", Num);
console.log("Initial Num type:", typeof Num);</p>
<p>// Num이 숫자인지 확인 (유효성 체크)
if (isNaN(Num)) {
console.error("Num is not a valid number. Check the initialization.");
} else {
console.log("Num is a valid number.");
}</p>
<p>// 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;
}
});</p>
<p>// 연산 시 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);
}
}</p>
<p>// 문제가 발생하는 코드
console.log("=== Before problematic function ===");
someFunction(Num);
console.log("=== After problematic function ===");</p>
<p>
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
11개월 전
그 이전 코드에서 Num 이 const 로 정의되어 있지는 않은지 살펴보세요.
첫글자가 대문자면 사실 변수나 함수라기보다는 이미 정의된 객체나 클래스일 수도 있거든요.
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인