객체의 주소참조
앞서 빈배열이 들어왔을때의 예외 처리로
if(arr ===[])과
if(arr.length === 0)이 어떤 차이를 가지고 있는지 알아보면서 참조타입에 대하여 알게됐는데 이번엔 객체의 주소 참조에서 막혔다...
javaScript 005번 문제인데 빈객체 obj을 어디에서 선언하는지에 따라 리턴되는 값이 바뀌는 것이다. 기존에 push해 놓았던 객체의 값이 바뀌는 것이 문제였다.
찾은 이유는 객체의 참조 때문이었는데,
.push(obj)에서 push 되는 것은 객체의 값 자체가 아니라 주소가 push되는 것이고 나는 반복문 밖에서 obj을 할당하여 반복이 도는 동안 주소를 초기화 하지 못해 똑같은 주소에서 값을 덮어쓰고 있는 것이었다. 알았던 내용인데 그래도 이렇게라도 확인해서 너무 다행이다...
템플릿 리터럴
따옴표 문자 대신 백틱(backtick) 문자 `를 사용한다.
일반적인 문자열에서 할 수 없었던 줄바꿈이나 +연산자를 사용하지 않고 간단히 변수와 함께 표현할 수 있다.
`who is ${first} ${last}.` ->이를 문자열 인터폴레이션이라 하고 문자열로 강제 타입변환된다.
배열에 push
객체의 키와 값을 하나의 배열에 배열의 형태로 푸쉬하는 법.
바로 push할때 []의 형태로 push가능!
result.push([key,obj[key]]);