.toLowerCase
メソッドは、数値で使用しようとするとエラーになります。これは私が持っているものです:
var ans = 334;
var temp = ans.toLowerCase();
alert(temp);
そして、それは私にこのエラーを与えます:
'undefined' is not a function (evaluating 'ans.toLowerCase()')
私はどこでこれを間違えたのかわかりません。数値も解析でき、結果に変化はないと常に思っていました(多分それは私が詰め込んだ場所です)。
しかし、それがエラーではない場合、誰かがカスタムmakeLowerCase
関数を作成して、おそらく正規表現などを使用して文字列を小文字にすることができますか?
.toLowerCase関数は文字列にのみ存在します。 javascriptの任意のものに対してtoString()を呼び出して、文字列表現を取得できます。これをすべてまとめると:
var ans = 334;
var temp = ans.toString().toLowerCase();
alert(temp);
数値は、.toLowerCase
メソッドを持たないNumber
コンストラクターから継承します。実際にはそれを調べることができます:
"toLowerCase" in Number.prototype; // false
エラーではありません。 Javascriptは、文字列が必要な場合(たとえば、parseInt(42)
)、数値を文字列に喜んで変換しますが、この場合、数値が文字列であることを期待するものはありません。
これがmakeLowerCase
関数です。 :)
function makeLowerCase(value) {
return value.toString().toLowerCase();
}
var ans = 334 + '';
var temp = ans.toLowerCase();
alert(temp);
これは数字であり、文字列ではありません。数字には最初から大文字と小文字が区別されないため、数字にはtoLowerCase()
関数がありません。
エラーなしで関数を実行するには、文字列で実行します。
var ans = "334";
もちろん、出力は入力と同じになります。前述のように、最初は数字に大文字と小文字の区別がないためです。