.toLowerCase не работает, функция замены?


Метод .toLowerCase дает мне ошибку, когда я пытаюсь использовать его на числах. Вот что у меня есть:

var ans = 334;
var temp = ans.toLowerCase();
alert(temp);

И затем он дает мне эту ошибку:

'undefined' is not a function (evaluating 'ans.toLowerCase()')

Я не знаю, где я получил это неправильно. Я всегда думал, что числа также могут быть проанализированы, без изменения результата (возможно, это то, что я набил).

Но если это не ошибка, может ли кто-то написать пользовательскую функцию makeLowerCase, чтобы сделать строку строчной, возможно, используя регулярное выражение или что-то еще?
5 33

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";
Конечно, выход будет таким же, как и вход, поскольку, как уже упоминалось, числа не имеют регистра в первую очередь.
var ans = 334 + '';
var temp = ans.toLowerCase();
alert(temp);