JavaScript-Rätselei ... wem's gefällt

Adam Wille

Erfahrenes Mitglied
Hoi Leute,

wieder mal ein kleines Rätsel von mir an euch:
Folgender JavaScript-Code ist vielleicht sogar noch eine etwas härtere Nuss, als
es letztens mit der Array-Variable-Beziehung war.
PHP:
<script type="text/javascript" language="JavaScript">
var a;
var number = 24 % 5;
var ausgabe = (a === (void 0)) && "string" + number;
alert(ausgabe);
</ script>
(</ script> wie immer zusammen)

Wer kann mir die passende Erklärung für das Script liefern? :)

Geist
 
was gibt es denn da zu erklären?

ist doch ganz klar, du gibts der variable 'ausgabe' den wert '"string" + a' falls 'a === ( void 0 )', das ist eine einfache if abfrage...

das ganze könnte auch so lauten:

Code:
var ausgabe = (a === (void 0)) ? "string" + number : null ;

oder noch einfacher:

Code:
if(a === (void 0)) 
     var ausgabe = "string" + number;
 
Recht hast du; es ist in dem Sinne ja auch kein Problem für einen erfahrenen JavaScript-Anwender gewesen, aber dass der &&-Operator für solche Zwecke missbraucht werden kann, wird für einige hier schon neu "gewesen" sein, schätze ich. :)

Und wer noch nie mit "void" gearbeitet hat, versteht vielleicht auch nicht wirklich, was es damit auf sich hat, den Ausdruck "void 0" mit einer deklarierten aber nicht manipulierten Variable zu vergleichen.

Anyway - richtig ist deine Erklärung, nur stell' ich mir das in deinem Falle auch nicht als so wirklich schwierig vor, das Rätsel zu entlüften. ;)
Dennoch war es ja logischerweise offen für alle...

Geist,
der ja gern wissen würde, wem das irgendwie neu erscheint

P.S.: Dein
PHP:
var ausgabe = (a === (void 0)) ? "string" + number : null ;
stimmt nicht ganz, der alternative Rückgabewert wäre undefined, nicht null...
 
Zuletzt bearbeitet:
stimmt nicht ganz, der alternative Rückgabewert wäre undefined, nicht null..

das null war auch nur so eine notlösung... :)

und tut mir leid das ich das rätsel gelöst habe das nächste mal warte ich und lasse es auch die anderen versuchen...
 
Kein Problem, so oder so hätte es offenbart werden müssen... :)

Anstatt wie andere 3000 Jahre auf die "Erlösung" warten zu müssen, hast du den tutorials.de-Usern diese Qualen erspart. ;)

keep on scripting,
Geist
 

Neue Beiträge

Zurück