간단하게 알아보자.
'추출할 단어'.substr(-1)
result: 어
('어'.charCodeAt(0) - parseInt('ac00',16)) % 28 > 0
result: false // '어'는 받침이 없기 때문에 false
간단히 설명하면,
글자의 유니코드에서 '가'의 유니코드를 뺀 값을 28로 나누었을 때,
나머지 값이 0보다 크면 종성(받침)이 있는 것임
나누기 숫자 28은
27 (종성 갯수) + 1 (종성이 없을 때) 이기 때문에
28로 나누어 나머지 값이 0이면 종성(받침)이 없는 것임