.toLowerCase not working, replacement function?
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);
Solution 5
It is a number, not a string. Numbers don't have a toLowerCase()
function because numbers do not have case in the first place.
To make the function run without error, run it on a string.
var ans = "334";
Of course, the output will be the same as the input since, as mentioned, numbers don't have case in the first place.
Lucas
Updated on August 14, 2021Comments
-
Lucas over 2 years
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? -
Lucas over 11 yearsis there a way to let
ans
retain its type, and not get converted into a string? -
spender over 11 yearsUm... why on earth do you want to lowercase it then??? Anyway, ans is still a number when all this code has run.
.toString()
does not modify the original value (i.e. you're not storing it back toans
) -
spender over 11 years@think123 I suggest that you shore up your understanding of the different javascript types and keep strings as strings and numbers as numbers. There's no need to be confused about the type of a variable. Where does the value of
ans
come from really? Why might the type ofans
be unknown? -
Gogol almost 10 years@think123 Try :
if(typeof ans == 'string') ans = ans.toLowerCase();
-
Kurkula over 7 yearsCannot read property 'toString' of undefined. I think we have to check type and then do this as Gogol mentioned.
-
S.Akruwala about 7 yearscheck for the undefined first and then convert it to string. try : if(ans != undefined && ans != 'undefined' && ans != null) { ans = ans.tostring(); .... other logic}