.toLowerCase not working, replacement function?

偶尔善良 提交于 2019-12-03 08:08:06

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!