공통으로 만들어둔 페이징 기능이 7,8,9 페이지만 동작을 안하길래 디버깅해보니
if(nowPage < totalPages) 에서 false가 나는거임
totalPages는 68인데 왜 이러지 하고 한참 찾다가 보니
now, total 둘다 값을 문자열로 들고 있었고
total의 10의 자리 숫자 6하고만 비교하고 있었다
근데 시발 6페이지는 왜 돌아간거야
7개의 댓글
무분별한 사용은 차단될 수 있습니다.
공통으로 만들어둔 페이징 기능이 7,8,9 페이지만 동작을 안하길래 디버깅해보니
if(nowPage < totalPages) 에서 false가 나는거임
totalPages는 68인데 왜 이러지 하고 한참 찾다가 보니
now, total 둘다 값을 문자열로 들고 있었고
total의 10의 자리 숫자 6하고만 비교하고 있었다
근데 시발 6페이지는 왜 돌아간거야
려비
ts쓰자
키슬레프의설렁탕
제가 쓰기 싫어서 안쓰는게 아니그든요ㅠㅠ
저소음흑축써주세요제발
'6' < '68'은 참이긴함 ㅋㅋㅋ
js에서 문자열은 비교되는 같은 자리의 문자열 중 유니코드값이 작을수록, 전체 문자열 길이가 짧을수록 작은 가중치를 갖는다고 판단하는걸로 알고있음
그래서 문자열 형태의 숫자 배열을 sort돌리고 비교 콜백함수를 a-b로 리턴주면 '1', '10', '100', '2', '20', '3', 300', ...같은 순서로 정리 됨
키슬레프의설렁탕
갸아아아아악
평택국
sql에서도 varchar 에 맥스걸어서 시퀀스따면 오류남 ㅋㅋ11이 있어도 맥스걸면 9ㄷ나옴 ㅋㅋ
국립국어원
jsdoc type 이라도 잘 달자
zrGgwK0rad
ts 쓰자
못쓰는 상황에선 jsdoc 쓰자
jsdoc이 굳이 구태여 또 싫다면 최소한 js runtime type이라도 검사해라
if (typeof nowPage !== 'number' || typeof totalPages !== 'number' ) { throw new Error('nowPage or totalPages is not a number') }