레이블? <label> 태그 말하는건가? <div><br /></div> <div>아닙니다.</div> <div><br /></div> <div>자바스크립트에 레이블 구문이 있습니다.</div> <div>여러분은 이렇게들 많이 사용하실겁니다.</div> <div><br /></div> <div><pre style="color: #333333; margin-top: 0px; margin-bottom: 0px; line-height: 16.25px"><span style="color: #1e90ff; font-weight: bold"><a< span=""><a <span style="color: #1e90ff">href=</span><span style="color: #aa5500">"java:;"</span> <span style="color: #1e90ff">=</span><span style="color: #aa5500">"java:doThis()"</span><span style="color: #1e90ff; font-weight: bold">></span>링크</a><span style="color: #1e90ff; font-weight: bold"></span></a<></span></pre></div> <div><br /></div> <div>여기서 java: 가 무슨 역할을 하는지 아시는분?</div> <div>프로토콜 역할?</div> <div><br /></div> <div>이상하게 작동은 합니다.</div> <div>이제 이 녀석을 한번 보도록 하겠습니다.</div> <div><br /></div> <div><pre style="color: #333333; margin-top: 0px; margin-bottom: 0px; line-height: 16.25px"><pre style="margin-top: 0px; margin-bottom: 0px"><span style="color: #0000aa">var</span> i, j;</pre><pre style="margin-top: 0px; margin-bottom: 0px">loop1:</pre><pre style="margin-top: 0px; margin-bottom: 0px"><span style="color: #0000aa">for</span> (i = <span style="color: #009999">0</span>; i < <span style="color: #009999">3</span>; i++) {</pre><pre style="margin-top: 0px; margin-bottom: 0px"> <span style="color: #aaaaaa; font-style: italic">//"loop1" 레이블을 가진 첫 반복문</span></pre><pre style="margin-top: 0px; margin-bottom: 0px"> loop2:</pre><pre style="margin-top: 0px; margin-bottom: 0px"> <span style="color: #0000aa">for</span> (j = <span style="color: #009999">0</span>; j < <span style="color: #009999">3</span>; j++) {</pre><pre style="margin-top: 0px; margin-bottom: 0px"> <span style="color: #aaaaaa; font-style: italic">//"loop2" 레이블을 가진 두번째 반복문</span></pre><pre style="margin-top: 0px; margin-bottom: 0px"> <span style="color: #0000aa">if</span> (i == <span style="color: #009999">1</span> && j == <span style="color: #009999">1</span>) {</pre><pre style="margin-top: 0px; margin-bottom: 0px"> <span style="color: #0000aa">continue</span> loop1;</pre><pre style="margin-top: 0px; margin-bottom: 0px"> } <span style="color: #0000aa">else</span> {</pre><pre style="margin-top: 0px; margin-bottom: 0px"> console.log(<span style="color: #aa5500">"i = "</span> + i + <span style="color: #aa5500">", j = "</span> + j);</pre><pre style="margin-top: 0px; margin-bottom: 0px"> }</pre><pre style="margin-top: 0px; margin-bottom: 0px"> }</pre><pre style="margin-top: 0px; margin-bottom: 0px">}</pre></pre></div> <div><br /></div> <div>이걸 실행하면 어떤 결과물이 나올까요?</div> <div>먼저 간단하게 continue 문을 보면 됩니다.</div> <div><br /></div> <div>continue loop1 이 있습니다. 즉, loop1 으로 반복문을 진행하라는 뜻이죠.</div> <div>이렇게 되면 어떻게 되냐구요? j 변수가 담긴 반복문이 아닌 i 변수, loop1 이 있는 반복문에서 반복문을 시작합니다.</div> <div>loop2 반복문은 거기서 끝나는거죠. 그래서 아래와 같은 결과물은 나오지 않습니다.</div> <div>i = 1, j = 1</div> <div>i = 1, j = 2</div> <div><br /></div> <div>어때요. 쉽죠?</div> <div><br /></div> <div>주의사항이 있습니다. 단 한가지 주의사항만 지키시면 됩니다.</div> <div><br /></div> <div><font size="7">왠만하면 쓰지 마세요.</font></div> <div><br /></div> <div>여러분의 코딩이 어려워지고, 성능도 느려집니다. 물론 난독화에는 좋을 지 모르겠지만 평소에 쓰는것은 해로운 점이 가득하다는 것이죠.</div> <div>그렇다면 대체 방법이 있나요? 있습니다. 함수를 이용하세요. return 문을 활용하면 됩니다.</div> <div>throw 도 마찬가지. 반복문이고 뭐고 모두 중단하고 return 하거나 throw 날립니다.</div> <div><br /></div> <div>자바스크립트를 좀 하신다면 골때리는 자바스크립트를 한번 보세요.</div> <div>곧 오유에도 연재됩니다. 물론 원문은 연재된지 오래고 구글링하면 나오지만.</div> <div><br /></div> <div><br /></div> <div><br /></div> <div><br /></div> <div><br /></div></label>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.