-
[2019.04.08] Check Point 틀린문제개발 블로깅 2019. 4. 8. 22:14123456var player = { score: 3 };function doStuff(obj) {obj = {};}player = doStuff(player);
cs player는 undefined.... 6번 줄에 player가 doStuff의 결과값을 받는 것을 못봄....
12345var obj = {inner: { x: 10 }};var example = obj.inner;obj.inner = undefined;cs obj.inner가 가리키고 있는 녀석은 {x:10}
4번 줄에 exaple도 {x:10}을 가리키게 함.
obj.inner에 undefined를 넣음으로써, 가리키고 있는 녀석의 값을 바꾸는게 아닌, obj.inner가 가리키는 놈을 undefined로 바꿈.
1~3번째 줄에 저렇게 선언했다고 obj.inner에 할당하는 것이 아닌, 가리키는 것이라고 생각해야함.
1234567891011121314var x = 10;function f () {x = x + 1;return x;}var obj = {func: f,g: f(),h: x,};obj.func();var result = obj.g;cs result는 11
9번줄에서, obj.g를 참조할때 f함수가 실행되는 것이 아니고, 처음에 obj를 선언할 때 9번줄의 f가 실행되고 g에 할당 됨.
1234567var x = 10;var obj = {y: x,z: obj.y + 1};var result = obj.z;cs 답은 NaN
7번 줄에서 obj.z를 정상적으로 실행할 것 같지만, 애초에 obj가 선언되서 만들어지는 중에 4번 줄에서 z:obj.y + 1에서 obj가 완전히 다 선언되지 않았는데 obj.y를 참조하므로 undefined가 됨.
반응형'개발 블로깅' 카테고리의 다른 글
[2019.04.12] 네트워크 통신 GET과 POST. (1) 2019.04.12 [2019.04.06] this, setTimeout Check point정리 (0) 2019.04.07 [2019.04.03] 자료구조- Graph의 개념 (0) 2019.04.04 [2019.04.03] 자료구조-해시테이블 (0) 2019.04.03 [2019.04.03]자료구조- B-tree (0) 2019.04.03