작업 상태
- 알람 설정 작업을 진행하던 중 08:00 값을 설정하던중 발생했습니다.
에러 메시지
error: SyntaxError: C:\Use...ns\Noti.js: Legacy octal literals are not allowed in strict mode. (15:12)
원인
- strict mode에서 코드에 0으로 시작하는 숫자가 있을 때 발생합니다. 이를 수정하면 됩니다. 또는 0o 접두어를 사용하여 8진수를 대신 표현할 수도 있습니다.
// 알림을 보냅니다.
const scheduledTime = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate(),
21, 00, 0, 0);
처리
const scheduledTime = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate(),
21, 0, 0, 0);
참고
JavaScript strict mode
- 더 엄격한 자바스크립트 문법 검사를 수행하는 모드입니다.
- 기존 자바스크립트와는 다른 규칙을 따르게 됩니다.
- 암묵적 전역 변수 금지: strict mode에서는 암묵적으로 선언되는 전역 변수를 사용할 수 없습니다. 변수를 명시적으로 선언하지 않으면 ReferenceError가 발생합니다.
- 읽기 전용 속성 및 변수: strict mode에서는 읽기 전용 속성 및 변수를 수정하려고 하면 TypeError가 발생합니다.
- 함수에서 this 사용 제한: strict mode에서는 함수 안에서 this를 사용할 때, 함수가 호출된 방식에 따라 this가 자동으로 전역 객체를 참조하지 않습니다.
- delete 연산자 사용 제한: strict mode에서는 delete 연산자로 변수, 함수, 매개변수 등을 삭제할 수 없습니다.
- 함수 매개변수 이름 중복 제한: strict mode에서는 함수의 매개변수 이름이 중복될 경우 SyntaxError가 발생합니다.
strict mode는 'use strict' 문을 사용하여 활성화할 수 있습니다. strict mode는 파일 전체에 적용될 수도 있고, 함수 내에서만 적용될 수도 있습니다.
'간단 에러 처리기' 카테고리의 다른 글
Project 'back' is missing required source folder: 'src/main/generated/querydsl' (0) | 2023.04.19 |
---|---|
java.lang.Error: Unresolved compilation problems (0) | 2023.04.18 |
Uncaught ReferenceError: initialState is not defined (0) | 2023.04.14 |
org.thymeleaf.exceptions.TemplateInputException (0) | 2023.04.13 |
org.springframework.expression.spel.SpelEvaluationException (0) | 2023.04.13 |