2012-05-11 2 views
3

그래서 이상한 문제가 발생했습니다. 배열이 status=new Array()입니다. 그런 다음 0에서 N-1까지 반복하고 status[i]="idle";을 지정합니다. 값을 확인하기 위해 경고하려고했으나 문자 모두에 ,이 할당되었습니다. 누구 잘못 알고있다?자바 문자열 배열

var status=new Array(); 
window.onload = function() { 
    for(var i=0;i<5;i++) { 
     status[i]="idle"; 
     alert(status[i]); 
    } 
} 

답변

7

다른 변수 이름을 사용하거나 더 나은 방법으로 전역 변수를 사용하지 마십시오. 이미 window.status property이 있습니다. 그리고 분명히 뭔가가 당신에게 그림자를 드리도록 내버려 두지 않습니다. (놀랍게도 약간 놀랍습니다. 배열이 과제물이나 다른 것에 문자열로 강요당하는 것인지 궁금합니다.) 전역 범위에서 varwindow 개체에 대한 속성을 만듭니다. 따라서 window.status이 적합합니다.

This example (source)는 (크롬을 사용, 나를 위해) 문제를 복제, 단지 변경된 이름으로 this example (source)는 경고의 올바른 시리즈입니다.

브라우저별로 지정합니다. 파이어 폭스에서는 오래된 코드조차 정확한 일련의 경고를 보여줍니다. 예 : Firefox는 window.status을 재정의 할 수 있지만 Chrome은 다시 정의 할 수 없습니다.

+0

아하, 알 겠어! 고마워요! –

+0

네, window.status 속성이 있습니다. 하지만 방금 바이올린을 복사하면 나에게 잘 작동합니다. 링크는 다음과 같습니다. http://jsfiddle.net/wGzv9/ – gopi1410

+0

@ gopi1410 : 브라우저와 관련된 것 같습니다. Chrome에서 일련의 '정의되지 않은'알림이 표시되지만 Firefox에서는 올바른 '유휴'알림이 표시됩니다. 다른 브라우저는 아마 다른 일을합니다. 결국 세계를 피하는 것이 가장 좋습니다. :-) –