1월 8일 (토)
Let's get it 자바스크립트 13강 지뢰찾기 복습
1. A && B
A가 존재하면 B를 실행하라는 뜻이다.
2. A || B
A가 존재하지 않으면 B를 실행하라는 뜻이다.
A가 존재하지 않는 다는 것 : undefined, Null, false, 0, '', NuN
** A ?? B
null, undefined 일때 B 를 실행하라는 뜻이다.
(0을 빈값이 아닌 현실 값으로 사용할 경우에 ?? 을 이용하여 Null , undefined 을 빈값으로 이용하여 사용할 수 있다)
3. 2차 배열에서 주의해야 할 undefined (optional chaining)
2차열 배열을 이용하여 구현할 때 주의해야 할 것이 있다.
왼쪽 이차배열 그림에서의 data[0][0] 대각선 칸인 data[-1][-1]을 콘솔창에 입력하면 에러가 난다.
data[-1]은 undefined 이며 이 자체로는 아무 문제가 되지 않는다.
** 자바스크립트에서 인덱스가 - (음수) 값일 경우 아무것도 가지고 오지 않는다. (undefined)
하지만 data[-1][-1]을 하게 되면 에러가 난다.
undefined에[-1] 즉, undefined 를 한 것이기 때문에 에러가 나는 것이다.
따라서 data[-1][-1]은 undefined[-1] 과 같은 말이 되기 때문에 에러가 난다.
이것을 방지하기 위한 방법이 두 가지가 있다.
1. if 함수를 이용하여 한 번 보호하기
이러한 방식으로 If 를 이용하여 감싸주면 에러를 방지 할 수 있다.
이 문법은 자바스크립트에서 자주 이용되는 문법이다.
언제?
1) 객체안에 객체가 들어있는 문장
e.g.
a.b.cdef.ghe
2) 객체 안에 배열 안에 객체가 들어있는 문장
e.g.
a.hello[0].cdef.ghe
문장 안에 하나라도 undefined가 섞여 있으면 에러가 나기 쉽기 때문에 if 문으로 감싸주어 에러를 방지할 수 있다.
2. ?. (optional chaining)을 이용하여 에러 방지하기
주로 2차배열의 맨 윗줄과 맨 아랫줄에 위치한 값들에서의 에러를 방지하기 위하여 사용한다.