@@ -17,7 +17,7 @@ let user = {}; // 주소 정보가 없는 사용자
1717alert (user .address .street ); // TypeError: Cannot read property 'street' of undefined
1818```
1919
20- 또 다른 사례는 브라우저에서 동작하는 코드를 개발할 때 발생할 수 있는 문제로, 페이지에 존재하지 않는 요소에 접근해 요소의 정보를 가져오려 할 때 발생합니다 .
20+ 또 다른 사례론 브라우저에서 동작하는 코드를 개발할 때 발생할 수 있는 문제가 있습니다. 자바스크립트를 사용해 페이지에 존재하지 않는 요소에 접근해 요소의 정보를 가져오려 하면 문제가 발생하죠 .
2121
2222``` js run
2323// querySelector(...) 호출 결과가 null인 경우 에러 발생
@@ -40,10 +40,10 @@ alert( user && user.address && user.address.street ); // undefined, 에러가
4040
4141` ?. ` 은 ` ?. ` '앞'의 평가 대상이 ` undefined ` 나 ` null ` 이면 평가를 멈추고 ` undefined ` 를 반환합니다.
4242
43- ** 설명이 장황해지지 않도록 지금부턴 평가후 결과가 ` null ` 이나 ` undefined ` 가 아닌 경우엔 값이 '있다', '존재한다'라고 표현하겠습니다.**
43+ ** 설명이 장황해지지 않도록 지금부턴 평가후 결과가 ` null ` 이나 ` undefined ` 가 아닌 경우엔 값이 '있다' 혹은 '존재한다'라고 표현하겠습니다.**
4444
4545
46- 옵셔널 체이닝을 사용해 ` user.address.street ` 에 안전하게 접근해봅시다.
46+ 이제 옵셔널 체이닝을 사용해 ` user.address.street ` 에 안전하게 접근해봅시다.
4747
4848``` js run
4949let user = {}; // 주소 정보가 없는 사용자
@@ -62,9 +62,9 @@ alert( user?.address.street ); // undefined
6262
6363위 예시를 통해 우리는 ` ? .` 은 ` ? .` '앞' 평가 대상에만 동작되고, 확장은 되지 않는다는 사실을 알 수 있습니다.
6464
65- In the example above, ` user? .` allows only ` user` to be ` null / undefined ` .
65+ 참고로 위 예시에서 사용된 ` user? .` 는 ` user` 가 ` null ` 이나 ` undefined ` 인 경우만 처리할 수 있습니다 .
6666
67- On the other hand, if ` user ` does exist, then it must have ` user .address ` property, otherwise ` user? .address .street ` gives an error at the second dot .
67+ ` user ` 가 ` null ` 이나 ` undefined ` 가 아니고 실제 값이 존재하는 경우엔 반드시 ` user .address ` 프로퍼티는 있어야 합니다. 그렇지 않으면 ` user? .address .street ` 의 두 번째 점 연산자에서 에러가 발생합니다 .
6868
6969` ` ` warn header= " 옵셔널 체이닝을 남용하지 마세요."
7070` ?.` 는 존재하지 않아도 괜찮은 대상에만 사용해야 합니다.
@@ -81,7 +81,7 @@ On the other hand, if `user` does exist, then it must have `user.address` proper
8181// ReferenceError: user is not defined
8282user? .address ;
8383` ` `
84- There must be ` let / const / var user `. The optional chaining works only for declared variables .
84+ ` user ? . anything ` 을 사용하려면 ` let ` 이나 ` const `, ` var `를 사용해 ` user `를 정의해야 하죠. 이렇게 옵셔널 체이닝은 선언이 완료된 변수를 대상으로만 동작합니다 .
8585` ` ` `
8686
8787## 단락 평가
0 commit comments