Возвращается значение NaN

179
17 июля 2018, 16:30

У меня такой код (js):

        function culc(count){
                if(count >= 1000){
                    var l = count.lenght - 3;
                    var n = "1e" + l;
                    var ec = Math.round(count/n) * n;
                    var ans = ec.toString().replace(/000/g, "K");
                    alert(ans);
                    return ans;
                }else{
                    alert(count);
                    return count;
                }
        }

Почему возвращается значение NaN?

Answer 1

Проблема в этой строке:

var l = count.lenght - 3;  // NaN

А т.к. l имеет значение NaN, то любые операции с NaN приводят к NaN

Теперь как получился NaN.

Переменная count, похоже, число. У чисел нет свойства lenght, поэтому count.lenght вернул значение undefined. А undefined - 3 вернет NaN.

UPD. Как Igor заметил у вас в коде опечатка слова length, поэтому даже если такой метод и был у чисел, count.lenght вернул бы undefined, т.к. опечатка в названии.

Предполагаю, что рабочий код будет такой:

var l = count.toString().length - 3;

PS.

NaN (англ. Not-a-Number, «нечисло»)

READ ALSO
Как получить первый дочерний элемент, в котором сработало событие?

Как получить первый дочерний элемент, в котором сработало событие?

как при наведении мышки на TD, получить <div id=""> ( первый дочерний элемент родителя <div id="body_infoReg"> в котором сработало событие )

184
Менять Яндекс карты по клику

Менять Яндекс карты по клику

Столкнулся с такой проблемой

196
Вывод на печать

Вывод на печать

На сервере находится шаблон в формате doc, в шаблоне имеется n строк

325
Как в функцию передать json?

Как в функцию передать json?

не могу понять, почему внутри функции json = undefinedПочему так происходит? Первый console

170