• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

push, concat 메서드 질문 드립니다.

16.07.08 00:19 작성 조회수 141

0

var a = ['a','b','c']; a.push('d'); // ['a','b','c','d'] var b = ['a','b','c']; b = b.concat(['d','e']); //['a','b','c','d','e'] 강의 보면 push 와 concat 사용을 위와 같이 말씀 주셨는데요. push를 concat 처럼 쓰면 a 에 리턴하면 형변환이 되어서 4가 출력이 되거든요. 또 반대로 concat을 push 처럼 쓰면 b에 'd','e' 가 담겨지지 않구요. var a = ['a','b','c']; a = a.push('d'); // 4 출력 var b = ['a','b','c']; b.concat(['d','e']); //['a','b','c'] 출력 Q. push를 concat 처럼 쓸때 왜 형변환이 되는지 궁금하구요. Q. concat을 push처럼 사용할 때 배열에 값을 담지 못하는지 궁금합니다.

답변 1

답변을 작성해보세요.

0

geenyou님의 프로필

geenyou

2021.01.25

저도 이 문제때문에 인터넷을 찾아봤는데 concat을 사용하고 다시 배열을 조회했을때 새로 붙여넣은 값이 안뜨는 이유는 concat 함수는 기존 배열을 바꾸는 것이 아니라 붙임과 동시에 얕은 복사본을 하나 만드는 것이라고 하네요