File tree Expand file tree Collapse file tree
1-js/04-object-basics/07-optional-chaining Expand file tree Collapse file tree Original file line number Diff line number Diff line change 99
1010이제 막 자바스크립트를 배우기 시작했다면 옵셔널 체이닝이 등장하게 된 배경 상황을 직접 겪어보지 않았을 겁니다. 몇 가지 사례를 재현하면서 왜 옵셔널 체이닝이 등장했는지 알아봅시다.
1111
12- 사용자가 여러 명 있는데 그중 몇 명은 주소 정보를 가지고 있지 않다고 가정해봅시다. 이럴 때 ` user.address.street ` 를 사용해 주소 정보에 접근하면 에러가 발생할 수 있습니다.
12+ 사용자가 여러 명 있는데 그중 몇 명은 주소 정보를 가지고 있지 않다고 가정해봅시다.
13+
14+ 이럴 때 ` user.address.street ` 를 사용해 주소 정보에 접근하면 에러가 발생할 수 있습니다.
1315
1416``` js run
1517let user = {}; // 주소 정보가 없는 사용자
@@ -198,16 +200,16 @@ let user1 = {
198200 firstName: "Violet"
199201};
200202
201- let user2 = null; // user2는 권한이 없는 사용자라고 가정해봅시다.
202-
203- let key = "firstName";
203+ let user2 = null;
204204
205205alert( user1?.[key] ); // Violet
206206alert( user2?.[key] ); // undefined
207207` ` `
208208
209209` ?.` 은 ` delete` 와 조합해 사용할 수도 있습니다.
210210
211+ 예시:
212+
211213` ` ` js run
212214delete user?.name; // user가 존재하면 user.name을 삭제합니다.
213215` ` `
@@ -217,6 +219,7 @@ delete user?.name; // user가 존재하면 user.name을 삭제합니다.
217219
218220예시:
219221` ` ` js run
222+ let user = null ;
220223// user가 존재할 경우 user.name에 값을 쓰려는 의도로 아래와 같이 코드를 작성해 보았습니다.
221224
222225user? .name = " Violet" ; // SyntaxError: Invalid left-hand side in assignment
You can’t perform that action at this time.
0 commit comments