.toLowerCase не работает, функция замены?
Метод .toLowerCase
дает мне ошибку, когда я пытаюсь использовать его на числах. Вот что у меня есть:
var ans = 334;
var temp = ans.toLowerCase();
alert(temp);
И затем он дает мне эту ошибку:
'undefined' is not a function (evaluating 'ans.toLowerCase()')
Я не знаю, где я получил это неправильно. Я всегда думал, что числа также могут быть проанализированы, без изменения результата (возможно, это то, что я набил).
Но если это не ошибка, может ли кто-то написать пользовательскую функциюmakeLowerCase
, чтобы сделать строку строчной, возможно, используя регулярное выражение или что-то еще?5 ответов:
.функция toLowerCase существует только в строках. Вы можете вызвать toString () на любом языке javascript, чтобы получить строковое представление. Складывая все это вместе:
var ans = 334; var temp = ans.toString().toLowerCase(); alert(temp);
Числа наследуются от конструктора
Number
, который не имеет метода.toLowerCase
. Вы можете посмотреть его на самом деле:"toLowerCase" in Number.prototype; // false
Это не ошибка. Javascript с радостью преобразует число в строку, когда ожидается строка (например,
parseInt(42)
), но в этом случае нет ничего, что ожидало бы, что число будет строкой.Вот функция
makeLowerCase
. :)function makeLowerCase(value) { return value.toString().toLowerCase(); }
Это число, а не строку. Числа не имеют функции
toLowerCase()
, потому что числа не имеют падежа в первую очередь.Чтобы функция работала без ошибок, запустите ее на строке.
Конечно, выход будет таким же, как и вход, поскольку, как уже упоминалось, числа не имеют регистра в первую очередь.var ans = "334";