🟨 기본 환경: IDE: VS code, Language: JavaScript

 

 

발생 Error

JavaScript에서 다음 Source Code를 실행할 경우,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const redux = require('redux');
 
const counterReducer = (state, action) => {
    return {
        counter: state.counter + 1
    };
};
 
const store = redux.createStore(counterReducer);
 
const counterSubscriber = () => {
    const latestState = store.getState();
    console.log(latestState);
};
 
store.subscribe(counterSubscriber); // 데이터 변경 시 실행
 
 
 

🚨 다음과 같은 Error 발생

counter: state.counter + 1
TypeError: Cannot read properties of undefined (reading 'counter')

 

 

발생 원인

createStore() → counterReducer 호출 → 새로운 state return

기존의 state가 정의되어있지 않아서 TypeError 발생

 

 

해결 방법

기존 state의 기본값 부여

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const redux = require('redux');
 
const counterReducer = (state = {counter: 0}, action) => {
    return {
        counter: state.counter + 1
    };
};
 
const store = redux.createStore(counterReducer);
 
const counterSubscriber = () => {
    const latestState = store.getState();
    console.log(latestState);
};
 
store.subscribe(counterSubscriber); // 데이터 변경 시 실행
 
 
 

 

🟨 기본 환경: IDE: VS code, Language: JavaScript

 

 

발생 Error

JavaScript에서 다음 Source Code를 실행할 경우,

🚨 다음과 같은 Error 발생

Uncaught ReferenceError: Must call super constructor in derived class before accessing 'this' or returning from derived constructor

 

 

발생 원인

클래스 상속 후, 자식 클래스의 생성자에서 super()를 호출하지 않음

⭐ constructor를 생략할 경우, 자동으로 super()가 생성되지만, 기재할 경우에는 super()를 작성해야 함

 

 

해결 방법

상위 클래스의 메서드나 필드에 접근하고자 할때 super 키워드를 사용해야하므로 하위 클래스의 constructor에서 super()를 호출하여, 참조 에러를 제거

 

 

 

 

참고 자료

 

[ES6+] 클래스(Class)문법에 대하여

ES6부터는 자바스크립트 또한 Class문법을 사용할 수 있게 되었다. 자바스크립트에서의 Class는 함수라는 것을 알아두고 클래스(Class)문법에 대해 하나씩 알아가보자. 1. 클래스(Class) 정의 1-1. 클래

mine-it-record.tistory.com

 

🟨 기본 환경: IDE: VS code, Language: JavaScript

 

 

발생 Error

JavaScript에서 다음 Source Code를 실행할 경우,

Uncaught ReferenceError: value10 is not defined

→ Error 발생

 

 

발생 원인

document.write(value10); 시점에 value10은 정의조차되지 않았으므로 오류 발생

* 호출 전 변수가 정의되어있다면, not defined error는 발생하지 않고, undefined가 출력됨

 

 

해결 방법

1. document.write(value10); 전에 정의만 먼저 실시

2. document.write(value10); 전에 정의 및 초기화 실시

 

 

 

➕ 변수 Hoisting

: 코드 실행 전 발생하는 변수 선언이 해당 범위의 맨 위로 이동되는 것

var type 변수는 hoisting이 적용되어 하기 코드에서는 Not defined Error 발생 X, undefined 출력

let, const type 변수는 hoisting 이 적용되지 않으므로 Not defined error/Cannot access 'value10' before initialization 발생

 

🟨 기본 환경: IDE: VS code, Language: JavaScript

 

 

발생 Error

JavaScript에서 다음 Source Code를 실행할 경우,

⭐ Cannot set properties of null (setting 'innerHTML') at insertQ (exam08.html:19:59)

→ Error 발생

 

 

발생 원인

insertQ(222) 실행 시, function의 getElementById("question")이 인식되지 않은 상태이므로 null로 인식되어 null의 속성에 result를 설정할 수 없다는 오류가 발생

 

 

해결 방법

body tag에 onload 속성을 활용해서 body 내부를 전체 읽고 실행되는 구조로 function을 실행

→ insertQ(111) 참조

 

🟨 기본 환경: IDE: VS code, Language: JavaScript

 

 

발생 Error

JavaScript에서 다음 Source Code를 실행할 경우,

⭐ Invalid left-hand side expression in postfix operation

→ Error 발생

 

 

발생 원인

단항(증감) 연산자는 변수나 상수에 할당된 데이터로만 연산할 수 있으며, 숫자에 직접 사용할 수 없음

 

 

해결 방법

변수를 선언 후 값을 부여하는 초기화 작업 진행 후, 변수에 증감연산자 사용

 

 

 

소스 코드

🔗 HJ0216/TIL/JAVASCRIPT