내가 이해한 게 맞는지 몰겠음

var x=[21,40,70,99,100]; 이런 배열이 있다고 치면

console.log(x.sort());하면 맨 앞자리 숫자만 비교해서 문자열로 변환됨과 동시에 오름차순(앞자리만 따짐) 정렬하잖아?

여기서 함수를 넣어서

console.log(x.sort(function(a,b){
if(a>b){
return 1;}
if else(a<b){
return -1;}
else(a=b){
return 0;}
}); 더 쉽게 하면 if문 빼고 안에 return a-b만 넣어도 되긴 하는데
그게 중요한 게 아니라 원리를 따져보면 약간 승패 개념? 비슷하다고 직관적으로 생각하긴 했는데 맞음?
모든 경우의 수로 하나하나 비교해서 돌리겠지만
결국 100은 어떤 숫자랑 비교해도 1이 리턴되고
99는 100빼고는 1이 리턴되고
70은 99하고 100한테는 -1리턴 당해도 나머지 둘 한테는 1리턴 되니까 중간이고

대충 따져보면
21 -> -4
40 -> -2
70 -> 0
99 -> 2
100 -> 4

sort가 앞자리 비교해서 오름차 순으로 정리해주니까 
21 40 70 99 100 이렇게 정렬 해주는 거 같은데 이거 맞음?
독학 코린이 이해 점 시켜줘..