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

на .toLowerCase метод дает мне ошибку, когда я пытаюсь использовать его на цифры. Вот что у меня есть:--5-->

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

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

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

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

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

5 ответов


.функция toLowerCase существует только в строках. Вы можете вызвать toString () на любом языке javascript, чтобы получить строковое представление. Складывая все это вместе:

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

числа наследуются от Number конструктор, который не имеет .toLowerCase метод. Вы можете посмотреть его на самом деле:

"toLowerCase" in Number.prototype; // false

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

здесь


это число, а не строку. Номера нет toLowerCase() функция, потому что числа не имеют регистра в первую очередь.

чтобы функция работала без ошибок, запустите ее в строке.

var ans = "334";

конечно, выход будет таким же, как и вход, так как, как уже упоминалось, числа не имеют случая в первую очередь.


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