데이터 형태 질문이요.. 채택완료
html에서 값을 받아와서 js의 배열로캔버스에 선을만들어주려합니다
function initStructure() {
var tmp=_points,i,tmp2;
_points = [];
for(i=0; i<tmp.length; i++) {
_points.push({x:tmp[i][0],y:tmp[i][1]});
}
tmp = _clines;
_clines=[];
for(i=0; i<tmp.length; i++) {
tmp2 = tmp[i];
if(tmp[i]<0)
continue;
_clines.push([_points[i],_points[tmp[i]]]);
}
}
현재 tmp 변수에는 _point , i , tmp2 가 들어있는데요
for문에서 tmp.length 라고하면 tmp 변수중 어떤것의 길이를 의미하는걸까요
그리고 length는 보통 배열의 길이를 나타내는거로 알고있는데요 어떻게하면 tmp의 길이를 구해오는걸까요
답변 1개
JavaScript 에서 변수를 선언할때
var tmp=_points, i, tmp2;
라고 선언을 하는경우
헛갈리실수 있습니다.(사실 저도 헛갈려서 다시 확인해서 답을드립니다.)
var 로 선언되는 변수는 _tmp, i, tmp2를 사용하겠다는 의미이고
그중에서 처음것인 tmp의 초기화변수값은
_points 입니다.
위의 로직으로 보아 아무래도 _points 는 배열인것 같습니다.
결과적으로
tmp.length 라는 값은
_points.length 와 동일합니다.
답변에 대한 댓글 3개
네, 다시 답변을 드리면
뒤에 선언된 i, tmp2는 값이 할당되지 않은겁니다.
즉, 할당되지 않은값인 undefined 가 노출됩니다.
따라서, 위의 사용하신 선언방법은
var tmp = _points;
var i;
var tmp2;
와 같습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
님 그러면 뒤에 선언된 i와 tmp2는 var tmp =_points,
tmp = i,
tmp = tmp2;
를 줄여놓은것이며 tmp라는 변수에 3가지 값을 담아놓앗다고 생각하면 되는걸까요