Ich versuche, diesen Code aus Eloquent JavaScript zu verstehen:(! N% 2) ist das gleiche wie (! N% 2 == 0)?
function unless(test, then) {
if (!test) then();
}
function repeat(times, body) {
for (var i = 0; i < times; i++) body(i);
}
repeat(3, function(n) {
unless(n % 2, function() {
console.log(n, "is even");
});
});
// → 0 is even
// → 2 is even
ich, dass es erhalten sagt, führen Sie den folgenden Code 3 mal Tests mit 0,1,2:
if (!n%2) function(n) {
console.log(n, "is even");
});
Was ich don‘ t bekommen ist, wie wir wahr/falsch von (!n%2)
bekommen?
Ist (!n%2)
das gleiche wie (!n%2 == 0)
?
so weit ich weiß Javascript wertet einen Ausdruck als wahr aus, solange er nicht zu 'null' noch 'undefiniert' auswertet. Mit anderen Worten, in Javascript wird alles mit einem * valide/known * Wert als wahr ausgewertet. – Veverke
@ Veverke - ... oder eine leere Zeichenfolge oder "0". –
Sei so explizit wie möglich mit deinen Bedingungen. Diese "Tricks" sind sprachabhängig, und niemand hat genug Zeit sich zu merken, wie jede andere Sprache mit ihnen umgeht. so auch wenn (! N% 2) tut was du willst. Benutze es nicht. – dustinroepsch