데이터 형태 질문이요..

데이터 형태 질문이요..

QA

데이터 형태 질문이요..

본문

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 와 동일합니다.

 

 

 

감사합니다 질문드린김에 한가지더있는데요..
님 그러면 뒤에 선언된 i와 tmp2는 var tmp =_points,
                                                  tmp = i,
                                                  tmp = tmp2;

를 줄여놓은것이며 tmp라는 변수에 3가지 값을 담아놓앗다고 생각하면 되는걸까요


네, 다시 답변을 드리면

뒤에 선언된 i, tmp2는 값이 할당되지 않은겁니다.

즉, 할당되지 않은값인 undefined 가 노출됩니다.

따라서, 위의 사용하신 선언방법은

var tmp = _points;
var i;
var tmp2;

와 같습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 14
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT