问题
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?
回答1:
.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);
回答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
回答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();
}
回答4:
var ans = 334 + '';
var temp = ans.toLowerCase();
alert(temp);
回答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.
来源:https://stackoverflow.com/questions/12611609/tolowercase-not-working-replacement-function