.toLowerCase不工作,更换功能?

Luc*_*emy 43 javascript string lowercase

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

var ans = 334;
var temp = ans.toLowerCase();
alert(temp);
Run Code Online (Sandbox Code Playgroud)

然后它给了我这个错误:

'undefined' is not a function (evaluating 'ans.toLowerCase()')
Run Code Online (Sandbox Code Playgroud)

我不知道我错在哪里.我一直认为数字也可以被解析,结果没有变化(也许这就是我填充的地方).

但如果那不是错误,有人可以写一个自定义makeLowerCase函数,使字符串小写,也许使用正则表达式或其他东西?

spe*_*der 100

.toLowerCase函数仅存在于字符串上.您可以在javascript中的任何内容上调用toString()来获取字符串表示.把这一切放在一起:

var ans = 334;
var temp = ans.toString().toLowerCase();
alert(temp);
Run Code Online (Sandbox Code Playgroud)

  • 嗯......为什么你要小写呢呢?无论如何,当所有这些代码都运行时,ans仍然是一个数字.`.toString()`不会修改原始值(即你没有将它存回`ans`) (6认同)
  • @ think123尝试:``if(typeof ans =='string')ans = ans.toLowerCase();`` (3认同)
  • @ think123我建议你加强对不同javascript类型的理解,并将字符串和数字保持为数字.没有必要对变量的类型感到困惑.`ans`的价值来自哪里?为什么`ans`的类型可能是未知的? (2认同)

0x4*_*2D2 6

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

"toLowerCase" in Number.prototype; // false
Run Code Online (Sandbox Code Playgroud)


Guf*_*ffa 6

这不是错误.当一个字符串被预期时(例如parseInt(42)),Javascript很乐意将数字转换为字符串,但在这种情况下,没有任何东西可以期望该数字是一个字符串.

这是一个makeLowerCase功能.:)

function makeLowerCase(value) {
  return value.toString().toLowerCase();
}
Run Code Online (Sandbox Code Playgroud)


Joe*_*der 5

var ans = 334 + '';
var temp = ans.toLowerCase();
alert(temp);
Run Code Online (Sandbox Code Playgroud)