Javascript .toLowerCase不工作,替换功能?

Javascript .toLowerCase不工作,替换功能?,javascript,string,lowercase,Javascript,String,Lowercase,当我试图在数字上使用.toLowerCase方法时,它给了我一个错误。这就是我所拥有的: var ans = 334; var temp = ans.toLowerCase(); alert(temp); 然后它给了我这个错误: 'undefined' is not a function (evaluating 'ans.toLowerCase()') 我不知道我哪里弄错了。我一直认为数字也可以被解析,结果没有变化(也许这就是我塞满东西的地方) 但是如果这不是错误,是否有人可以编写一个自定义

当我试图在数字上使用
.toLowerCase
方法时,它给了我一个错误。这就是我所拥有的:

var ans = 334;
var temp = ans.toLowerCase();
alert(temp);
然后它给了我这个错误:

'undefined' is not a function (evaluating 'ans.toLowerCase()')
我不知道我哪里弄错了。我一直认为数字也可以被解析,结果没有变化(也许这就是我塞满东西的地方)


但是如果这不是错误,是否有人可以编写一个自定义的
makeLowerCase
函数,使字符串小写,也许可以使用regex或其他东西?

它是一个数字,而不是字符串。数字没有
toLowerCase()
函数,因为数字首先没有大小写

var ans = 334 + '';
var temp = ans.toLowerCase();
alert(temp);
要使函数无误运行,请在字符串上运行它

var ans = "334";
当然,输出将与输入相同,因为如前所述,数字首先没有大小写。

函数
.toLowerCase()
只存在于字符串上

var ans = 334 + '';
var temp = ans.toLowerCase();
alert(temp);
可以对JavaScript中的任何内容调用
.toString()
,以获得字符串表示形式

综上所述:

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

数字继承自
Number
构造函数,该构造函数没有
.toLowerCase
方法。事实上,你可以查一下:

"toLowerCase" in Number.prototype; // false

这不是一个错误。当需要字符串时,Javascript会很高兴地将数字转换为字符串(例如
parseInt(42)
),但在这种情况下,没有任何东西需要将数字转换为字符串

var ans = "334";
下面是一个
makeLowerCase
函数:


请使用以下代码,因为toLowerCase()应用于字符串,因此首先,您需要使用toString()方法将其转换为字符串

您希望小写数字是什么样子?@jamesalardice我希望函数只返回我给出的数值。@James。有没有办法让ans保留其类型,而不转换为字符串?嗯。。。那你到底为什么要把它小写???无论如何,当所有这些代码都运行后,ans仍然是一个数字
.toString()
不会修改原始值(即,您不会将其存储回
ans
)@think123我建议您加强对不同javascript类型的理解,并将字符串保留为字符串,将数字保留为数字。不需要混淆变量的类型。
ans
的价值究竟来自哪里?为什么
ans的类型可能未知?@think123尝试:
if(typeof ans=='string')ans=ans.toLowerCase()无法读取未定义的属性“toString”。我认为我们必须检查类型,然后按照果戈理提到的那样做。