Frage Unterschied Number/String und Schleifen?

N3WM4N

Mitglied
Hi ich habe eine kurze Frage zu Schleifen mit Strings/Numbers.
Und zwar: Im folgendem Code wird eine Nutzereingabe eingelesen mit der prompt Funktion.
Die eingelesene Zahl ist ja automatisch ein String "". Normalerweise wandelt man den String
in eine Fließkommazahl mit parseFloat um. Jetzt habe ich aber festgestellt, dass meine Schleife
auch mit dem String funktioniert bzw ausgeführt wird. Wieso ist das so?
Java:
<script type="text/javascript"> //<![CDATA[
    "use strict"
    function Button()
    {
    var i=1;
    var i_max=prompt("Bitte geben Sie eine Grenze ein")
    //i_max=parseFloat(i_max)
    var ausgabe="<tr><th>Zähler</th><th>Quadrat</th></tr>";
    do
        {
        
        
        ausgabe=ausgabe+"<tr><td>"+i+"</td><td>"+i**2+"</td></tr>";
        i=i+1
        }while(i**2<i_max)
    
    document.getElementById("1").innerHTML=ausgabe;
    }
        //]]>
</script>
 

LimDul

Top Contributor

Javascript nimmt solche Konvertierungen bei Bedarf automatsich vor.
 

LimDul

Top Contributor
Ich vermeide JavaScript wie der Teufel das Weihwasser, daher kann ich zu Best Practices nichts sagen.

Aber grundsätzlich würde ich sagen ja, lieber explizit parsen. Wie die Seite ja auch sagt:

When JavaScript tries to operate on a "wrong" data type, it will try to convert the value to a "right" type.

The result is not always what you expect:

Dann hat man eine Stelle, wo man das konvertiert und hat auch die Chance auf Fehler & Co zu reagieren bzw. Prüfungen zu machen anstelle sich auf "Magie" zu verlassen.
 

Oneixee5

Top Contributor
ok vielen Dank. Also um es formal richtig zu machen. nutzt man trotzdem parseFloat?
parseFloat würde man in dem Beispiel so nicht nutzen, die Funktion ist dafür gedacht Gleitkommazahlen zu parsen. Normalerweise würde man in DE eine Gleitkommazahl mit einen Komma eingeben, also z.B.: "12,55". Das Resultat wäre dann aber parseFloat("12,55") ist 12, das ist bestimmt nicht gewollt. Außerdem werwendet die gezeigt Berechnung immer Ganzzahlen.
Auch Window.prompt() ist hier nicht gut geeignet. Ein prompt-Dialogfenster hat einen einzeiligen Text, einen Abbrechen-Button und einen OK-Button und gibt den (möglicherweise leeren) Text zurück, der ins Textfeld eingegeben wurde. Man muss hier also mit allen möglichen unsinnigen Eingaben rechnen. Dialogfenster sind außerdem modal - sie verhindern, dass der Anwender auf den Rest der Seite zugreifen kann. In einer Webanwendung würde man so etwas normalerweise nicht machen.
Die Verwendung von Prompt wäre z.B.:
var aNumber = Number(window.prompt("Gib eine Zahl ein", ""));
Die Überprüfung würde etwa so erfolgen:
if (isNaN(aNumber)) { return 'Not a Number!'; } return aNumber;

s.auch: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/number
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
pkm Frage zu einem nicht funktionierenden setInterval bei einer ExtJS-Komponente Angular, React, JQuery - Fragen zu JavaScript 1
Noahscript [Frage]: Wie erstelle ich eine htmlspecialchars_decode mit JavaScript? Angular, React, JQuery - Fragen zu JavaScript 1
A Ich habe eine frage zu JavaScript adblock detector? Wenn jemand auf OK Klick soll die Sete neu geladen werden Angular, React, JQuery - Fragen zu JavaScript 1
pkm Frage zu Parametern bei der toLocaleString-Funktion von Date Angular, React, JQuery - Fragen zu JavaScript 3
pkm Frage: Uncaught SyntaxError: JSON.parse: expected property name or '}' Angular, React, JQuery - Fragen zu JavaScript 5
A Frage zu Vektoren Angular, React, JQuery - Fragen zu JavaScript 8
isaac77 Java Script implementierung Problem & Frage Angular, React, JQuery - Fragen zu JavaScript 0
F Frage zu Regex Angular, React, JQuery - Fragen zu JavaScript 9
C Frage zu Programm Angular, React, JQuery - Fragen zu JavaScript 5
W Frage zu Funktionen Angular, React, JQuery - Fragen zu JavaScript 8
Gossi Frage zu Html (evtl. auch JavaScript?) Angular, React, JQuery - Fragen zu JavaScript 10
K JavaScript tooltip-Frage Angular, React, JQuery - Fragen zu JavaScript 8
J HTML frage mit javascript lösbar? Angular, React, JQuery - Fragen zu JavaScript 3
S Kleine Frage: Multilevel Navigation Angular, React, JQuery - Fragen zu JavaScript 2
P Frage eines Anfängers, Ajax Script beharkt sich mit anderen JS-Scripten Angular, React, JQuery - Fragen zu JavaScript 5
G Frage zu For-Schleife Angular, React, JQuery - Fragen zu JavaScript 2
F Frage zu einem Script Angular, React, JQuery - Fragen zu JavaScript 2
J Zwangsklick Script - Frage Angular, React, JQuery - Fragen zu JavaScript 3
D (Anfänger) Frage zur Verknüpfung Javascript PHP Angular, React, JQuery - Fragen zu JavaScript 9
S Frage zum Code Angular, React, JQuery - Fragen zu JavaScript 2
A Frage zu select mit dropdown Angular, React, JQuery - Fragen zu JavaScript 10
G Frage Angular, React, JQuery - Fragen zu JavaScript 3
B Dojo Javascript frage (dynamische tabs) Angular, React, JQuery - Fragen zu JavaScript 2
R Frage zu einem speziellen Effekt in Web Anwendungen Angular, React, JQuery - Fragen zu JavaScript 13
H Ich hab dan mal ne frage zu nem menue Angular, React, JQuery - Fragen zu JavaScript 2
G Frage Angular, React, JQuery - Fragen zu JavaScript 5
G java dropdown menü frage Angular, React, JQuery - Fragen zu JavaScript 1
G Login mit Sessions PHP Frage Angular, React, JQuery - Fragen zu JavaScript 2
E Onmousover Frage ? Angular, React, JQuery - Fragen zu JavaScript 13
K Frage zu folgendem Java-Skript (HP-Login) Angular, React, JQuery - Fragen zu JavaScript 5
M Frage wegen einer einfachen Java Bildergalerie Angular, React, JQuery - Fragen zu JavaScript 8
F Frage zu Code Angular, React, JQuery - Fragen zu JavaScript 11
R Unterschied zwischen Java und Javascript? Angular, React, JQuery - Fragen zu JavaScript 8
I Unterschied JavaScript und JScript Angular, React, JQuery - Fragen zu JavaScript 2

Ähnliche Java Themen

Neue Themen


Oben