.toLowerCase not working, replacement function?

The .toLowerCase method is giving me an error when I try to use it on numbers. This is what I have:

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

And then it gives me this error:

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

I don't know where I got this wrong. I always thought that numbers can also be parsed, with no change in result (maybe that's where I stuffed up).

But if that's not the error, can someone write a custom makeLowerCase function, to make the string lower case, perhaps using regex or something?


Solution 1:

The .toLowerCase() function only exists on strings.

You can call .toString() on anything in JavaScript to get a string representation.

Putting this all together:

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

Solution 2:

Numbers inherit from the Number constructor which doesn't have the .toLowerCase method. You can look it up as a matter of fact:

"toLowerCase" in Number.prototype; // false

Solution 3:

It's not an error. Javascript will gladly convert a number to a string when a string is expected (for example parseInt(42)), but in this case there is nothing that expect the number to be a string.

Here's a makeLowerCase function. :)

function makeLowerCase(value) {
  return value.toString().toLowerCase();
}

Solution 4:

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