:: 게시판
:: 이전 게시판
|
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다. 통합 규정을 준수해 주십시오. (2015.12.25.)
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
17/10/11 15:46
대부분의 언어에서 a || b를 evaluation할 때 a가 True이면 a를, False이면 b를 가지도록 되어 있습니다.
그래서 저 경우에는 앞의 대상이 비어있으면 {} 으로 default value를 주려고 하는 거에요.
17/10/11 16:13
답변감사합니다.
추가로 하나만 더 질문을 드리고 싶은데요, 굳이 com = com || {} 을 쓰는 이유는 무엇때문인가요?
17/10/11 16:39
그 코드에서의 의도는 컨텍스트를 같이 봐야 알 수 있는데, 일반적으로는 밑에서 null로 인한 오동작을 방지하려는 의도라고 봐야합니다.
예를 들어 밑에 com["foo"] = "bar" 같은게 있다고 하면, com이 null일때는 에러가 나고, {}일때는 에러 없이 동작하게 됩니다. 혹은 Object.keys(com).length 처럼 길이를 구하는 코드가 있다고 치죠. 이것도 마찬가지로 null이나 undefined일땐 에러가 납니다. 저런 코드를 매번 if(com == null) 같은걸로 감싸자니 귀찮고 그러니까 비어있는 {} 를 채우는거죠.
|