Функция charCodeAt
принимает индекс, а не строку.
Когда вы передаете ей строку, она будет пытаться преобразовать строку в число и использовать 0
, если это не удалось.
Ваша первая итерация вызывает '1'.charCodeAt('1')
. Он проанализирует '1'
как число и попытается получить второй символьный код в строке. Поскольку строка содержит только один символ, это NaN
.
Ваша вторая итерация вызывает 'f'.charCodeAt('f')
. Поскольку 'f'
не может быть проанализирован как число, оно будет интерпретировано как 0
, что даст вам код первого символа.
Вы должны написать var hexval = result.charCodeAt(i)
, чтобы получить код символа в заданной позиции в исходной строке.
Вы также можете написать var hexval = chr.charCodeAt(0)
, чтобы получить код символа одного символа в строке chr
.