• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[SCRIPTSUCHE] External link disclaimer Dialog

Schon wieder die Grundsatzdiskussion über == und ===?

bbnetwork braucht Grundlagenhilfe, er ist absoluter Anfänger.
 
in den meisten fällen nicht. i.d.r soll Number(2) == 2 true liefern
In der Regel soll man new Number() nicht verwenden...
selten benötigt man einen "pointervergleich"
Ich brauch' den dauernd. Wenn ich wissen will, ob ein Objekt in einer Variable identisch mit einem in einer anderen Variable ist... wenn ich wissen will, ob zwei Objekte äquivalent sind, schreibe ich mir entweder eine Methode, die mir das prüft, oder ich vergleiche die Attribute, die mir die Äquivalenz definieren.

So sind z.B. zwei 1€ Münzen äquivalent aber nicht identisch. Wenn für dich alle 1€ Münzen identisch sind, kannst du mir ja gerne alle bis auf eine schicken.

dewegen wurden casts erfunden, selbst in typisierten sprachen
Cast sind super. Das bestreitet ja auch keiner. Kann ich ja machen und dann mit === vergleichen. Aber Autocasts, die man nicht kontrollieren kann und unlogisches Verhalten erzeugen (allein schon die fehlende Transitivität macht das Ganz komplett unlogisch), sind unbrauchbar.

und selbst definierbare operatoren an objekten
Gibt es in JS nicht. Nur Methoden. Also definier' dir doch eine Methode in Number.prototype, die dir den Vergleich so macht, wie du es gerne hättest...

einen operator ==, der die adresse nutzt kenne ich auch sonst nirgendwo
Ist in auf jedenfall in Java so (ich sag nur string1 == string2).

Schon wieder die Grundsatzdiskussion über == und ===?
Du hast ja Recht und da hesst und ich da nie auf einen gemeinsamen Nenner kommen werden, ist das hier jetzt mein letzter Post zu dem Thema.

@hesst: wenn du da weiterdiskutieren willst, mach' einen Thread dazu auf.

@bbnetwork: ist er Code jetzt für dich verständlicher?
 
In der Regel soll man new Number() nicht verwenden...
warum?

wenn ich wissen will, ob zwei Objekte äquivalent sind, schreibe ich mir entweder eine Methode, die mir das prüft, oder ich vergleiche die Attribute, die mir die Äquivalenz definieren.
bei Objekten bleibt einem ja nichts anderes übrig, da man keinen eigenen operatoren definieren kann

So sind z.B. zwei 1€ Münzen äquivalent aber nicht identisch. Wenn für dich alle 1€ Münzen identisch sind, kannst du mir ja gerne alle bis auf eine schicken.
nicht alles was hinkt ist ein vergleich.
ob es der selbe euro ist, oder nicht, ist kein praxis relevanter fall. dort interessiert nur, ist es eine 1€ münze oder nicht, ==

Cast sind super. Das bestreitet ja auch keiner.
und Autocasts auch

Gibt es in JS nicht. Nur Methoden.
leider

Also definier' dir doch eine Methode in Number.prototype, die dir den Vergleich so macht, wie du es gerne hättest...
warum? == kann man in 99% aller fälle einfach nehmen, === bei wesentlich weniger
 
Nein, aber ich bin auch dwr Meinung:
solche ausufernden Nebendiskussionen sollte man m.E. in einen neuen Thread verschieben
Sieh's doch mal so: diese Nebendiskussionen haben sogar einen eigenen Thread verdient. Außerdem kann man dann, wenn man sich für das Thema interessiert, die Diskussion in einem eigenen Thread schnell finden und nachlesen. Und es wiederholen sich nicht immer die gleichen Diskussionen (wie die hier zwischen == und ===.
Ganz nebenbei: ich schließe mich Korbinian an, da ich es sauberer finde, Anfängern gleich die Verwendung von "===" zu empfehlen...
 
Zurück
Oben