그래서 저는 캔버스 API를 사용하여 작은 게임을 만들고 있습니다. 그리고 저는 자바 스크립트를 처음 접했습니다. 하지만이 charecter 나는 아래의 코드에서 오류를 건너 왔어요 전체 360도에서 촬영 할 수 만드는 작업을하는 동안 (이 기능은 마우스의 위치와 다른 플레이어의 위치 아무것도 사이의 각도를 반환해야합니다)javascript typeof/NaN confusion
calculateAngle : function(x,y){
var opp = 0; //opposite
var adj = 0; //adjecent
var rad = 0; //radian
var ang = 0; //angle
//side lengths
var x1 = gfx.player_center_x //the player x position
var x2 = mouse_x; //the mouse x position
var y1 = gfx.player_center_y; //the player y position
var y2 = mouse_y; //the mouse y position
//find 2 lengths of the triangle
opp = (y2 - y1);
adj = (x2 - x1);
//find the missing angle between the adjecent and hypotenuse
rad = Math.atan2(adj, opp);
ang = rad * 180/Math.PI;
//-------------------------//
console.log(ang); //prints: NaN
console.log(typeof ang); //prints: number
//------------------------//
return ang;
}
반환 값 NaN이 반환되면 ang은 숫자입니다! javascript가 변수 ang을 숫자가 아닌 것으로 생각하는 이유는 무엇입니까? 0으로 선언 된 typeof가 숫자를 반환합니다. 도와주세요!
UPDATE : NaN의 특별한 값
어디에서'mouse_x'와'mouse_y'를 가져 옵니까? – Steve
변수에 유형이 없습니다. 'ang'은 꼭 숫자가 아닙니다. 처음에는 숫자 ('0')가 저장됩니다. 'typeof'는 숫자입니다. 'NaN'은'ang'의 가장 최근 값 (계산)이 숫자가 아닌 것으로 결정된 결과를 가짐을 의미합니다. 계산 결과 숫자가 아니므로 NaN을 반환합니다. 계산 ('rad * 180/Math.PI')을 보면, 계산을 잘못하기 위해'rad'에 "problem"이 있다고 가정 할 것입니다. – Ian
rad는 아마도 이미 NaN입니다. – juvian