개발자
for문에서 태그를 반복할 때 대입연산자를 쓰던데 이해가 가지 않는 부분이 있어요 var a='<select>'; for(var i = 1; i <=28; i++){ a += '<option>'+ i +'</option>'; } a += '</select>'; document.write(a); 이거인데요 for문 안에 있는 a += '<option>'+ i +'</option>'을 풀어쓰면 a = '<select>'+'<option>'+ i +'</option>'인 건데 왜 <select>태그는 반복이 되지 않는 건가요? a += '</select>' 이것도 왜 <select> </select>로 출력되지 않고 </select>인 건지 설명 부탁드립니다 도와주세요ㅜㅜ
답변 3
인기 답변
풀어서 나열해보면 이해하기 쉬울겁니다! 간단하게 세번 반복한다고 가정 해보면 (반복되는 조건은 i < 4 이며, i 의 초기값은 i = 1 입니다.) var a = '<select>' i = 1 일 때 식: a += '<option>' + i + '</option>'; 연산 후의 값: a = '<select><option>1</option>'; 해석: a = a(초기값인 '<select>') + '<option>' + 1 (i = 1 이기 때문에 1) + '</option>' ; i = 2 일 때 식: a += '<option>' + i + '</option>'; 연산 후의 값: a = '<select><option>1</option><option>2</option>; 해석: a = a(초기값에 위 연산을 더한 '<select><option>1</option>') + '<option>' + 2 (i = 2 이기 때문에 2) + '</option>' ; i = 3 일 때 식: a += '<option>' + 3 + '</option>'; 연산 후의 값: a = '<select><option>1</option><option>2</option><option>3</option>'; 해석: a = a(초기값에 두 번의 연산을 더한 '<select><option>1</option><option>2</option>') + '<option>' + 3 (i = 3 이기 때문에 3) + '</option>' 반복문 이후 마지막 연산 식: a += '</select>; 연산 후: a = '<select><option>1</option><option>2</option><option>3</option></select>'; 이런 식으로 직접 풀어보시면 이해하시기 쉬울거에요!
박서연
software engineer • 2023년 02월 07일
오.. 지나가다가 저도 많이 배워 갑니다.
a += '<option>' + i + '<option>' 밑에 consol.log(a); 를 찍고 브라우져에서 f12눌러서 개발자 도구로 보시면 반복문 한줄이 실행 될때마다 a가 어떻게 변하는지 볼수있고 이해하는데에 도움이 되실겁니다
삭제된 사용자
2023년 02월 06일
위에 훌륭히 답변해주셨지만 조금 더 적어봅니다. 질문자님께서 작성하신 내용중에 for문 안에 있는 a += '<option>'+i+'</option>'을 풀어쓰면 a = '<select>'+'<option>'+i+'</option>'인 건데 이 부분을 잘못 이해하고 계신 것 같습니다. a += '<option>'+i+'</option>'을 풀어쓰면 a = a+'<option>'+i+'</option>'가 됩니다. for문 안의 코드가 처음 실행될때는 적어주신것과 같은 동작이지만 두 번째 이후로는 기존의 a값에 '<option>'+i+'</option>'를 더해준다고 보시면 됩니다. a+=b 라면 "a의 증가량이 b다" 같은 식으로 이해하시면 될 것 같습니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!