.toLowerCase funktioniert nicht, Ersatzfunktion?

Lesezeit: 3 Minuten

Benutzer-Avatar
Lukas

Das .toLowerCase -Methode gibt mir einen Fehler, wenn ich versuche, sie für Zahlen zu verwenden. Das habe ich:

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

Und dann gibt es mir diesen Fehler:

'undefined' is not a function (evaluating 'ans.toLowerCase()')

Ich weiß nicht, wo ich das falsch gemacht habe. Ich dachte immer, dass Zahlen auch geparst werden können, ohne dass sich das Ergebnis ändert (vielleicht habe ich dort zugeschlagen).

Aber wenn das nicht der Fehler ist, kann jemand einen Custom schreiben makeLowerCase Funktion, um die Zeichenfolge klein zu schreiben, vielleicht mit Regex oder so?

  • Wie erwarten Sie Kleinbuchstaben?

    – James Allardice

    26. September 2012 um 22:50 Uhr

  • @JamesAllardice Ich erwarte, dass die Funktion nur das zurückgibt, was ich ihr gegeben habe, wenn es sich um einen numerischen Wert handelt.

    – Lukas

    26. September 2012 um 23:01 Uhr

  • @ James . 334

    – Robbie Smith

    22. Juli 2019 um 13:59 Uhr

Benutzer-Avatar
Spender

Das .toLowerCase() Funktion existiert nur für Strings.

Du kannst anrufen .toString() auf irgendetwas in JavaScript, um eine Zeichenfolgendarstellung zu erhalten.

Das alles zusammen:

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

  • Gibt es eine Möglichkeit zu lassen ans seinen Typ behalten und nicht in eine Zeichenfolge konvertiert werden?

    – Lukas

    26. September 2012 um 23:02 Uhr

  • Ähm… warum um alles in der Welt willst du es dann klein schreiben??? Wie auch immer, ans ist immer noch eine Zahl, wenn dieser gesamte Code ausgeführt wurde. .toString() ändert den ursprünglichen Wert nicht (dh Sie speichern ihn nicht zurück ans)

    – Spender

    26. September 2012 um 23:04 Uhr

  • @think123 Ich schlage vor, dass Sie Ihr Verständnis der verschiedenen Javascript-Typen stärken und Zeichenfolgen als Zeichenfolgen und Zahlen als Zahlen beibehalten. Über den Typ einer Variablen besteht kein Grund zur Verwirrung. Woher kommt der Wert von ans kommen Sie wirklich? Warum könnte die Art von ans unbekannt sein?

    – Spender

    26. September 2012 um 23:09 Uhr


  • @think123 Versuchen Sie: if(typeof ans == 'string') ans = ans.toLowerCase();

    – Gogol BH-Netzwerk

    12. Juli 2014 um 8:03 Uhr


  • Eigenschaft ‘toString’ von undefined kann nicht gelesen werden. Ich denke, wir müssen den Typ überprüfen und dies dann tun, wie Gogol es erwähnt hat.

    – Kurcula

    3. Februar 2017 um 0:31 Uhr


Zahlen erben von der Number Konstruktor, der das nicht hat .toLowerCase Methode. Das kann man übrigens nachschlagen:

"toLowerCase" in Number.prototype; // false

Es ist kein Fehler. Javascript konvertiert gerne eine Zahl in einen String, wenn ein String erwartet wird (z parseInt(42)), aber in diesem Fall erwartet nichts, dass die Zahl eine Zeichenfolge ist.

Hier ist ein makeLowerCase Funktion. 🙂

function makeLowerCase(value) {
  return value.toString().toLowerCase();
}

var ans = 334 + '';
var temp = ans.toLowerCase();
alert(temp);

Es ist eine Zahl, kein String. Zahlen haben kein a toLowerCase() funktionieren, weil Zahlen von vornherein keinen Fall haben.

Damit die Funktion fehlerfrei ausgeführt wird, führen Sie sie für eine Zeichenfolge aus.

var ans = "334";

Natürlich ist die Ausgabe die gleiche wie die Eingabe, da Zahlen, wie erwähnt, von vornherein keine Groß-/Kleinschreibung haben.

Benutzer-Avatar
Kraftbolzen

const myvar = 222;
const tempVar = myvar.toString().toLowerCase();
alert(tempVar);

Bitte verwenden Sie den folgenden Code, weil toLowerCase(); wird auf einen String angewendet, also müssen Sie ihn zunächst mithilfe von in einen String umwandeln toString() Methode

Benutzer-Avatar
Das Prägnante

Sie können dies auch verwenden.

function strtolower(value){

 return ("" +  value).toLowerCase();
}

var ans=strtolower( 334); 

1037940cookie-check.toLowerCase funktioniert nicht, Ersatzfunktion?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy