2017-04-27 6 views
-6

Javascript ternärer Operator versteckte Logik

function even_or_odd(number) { 
 
    return number % 2 === 0 ? 'Even' : 'Odd'; 
 
} 
 

 
function even_or_odd(number) { 
 
    return number % 2 ? "Odd" : "Even" 
 
}
Warum diese beiden Funktionen liefern das gleiche Ergebnis?

Wie funktioniert return number % 2 ? "Odd" : "Even"?

+0

Warum so viele downvotes sein? –

Antwort

1

0 in Javascript ist ein falscher Wert.

var v = 0; 
 

 
if(v) { 
 
    console.log("true"); 
 
} else { 
 
    console.log("false"); 
 
}

number % 2 kehrt entweder 0 (die falsy) oder 1 (das ist truthy). Wenn also die numbereven ist, dann wird number % 20 zurückkehren und die Bedingung des ternären wird false ...