2016-06-25 18 views
2

Ich möchte überprüfen, ob eine Zahl ist sogar durch Verwendung von Funktion und zurück in Javascript. hier geht mein Code. Es sollte true zurückgeben, wenn die Zahl auch falsch ist.geben Sie eine Zeichenfolge in Javascript zurück

var isEven = function(number) { 
    if(number%2 === 0) { 
     return "true"; 
    } else { 
     return "false"; 
    } 
}; 

der Code funktioniert nicht. Stattdessen funktioniert es, wenn die Anführungszeichen ("...") um wahr und falsch entfernt werden. Warum? Ich meine, die Wörter wahr und falsch sind Strings und sollten daher in Anführungszeichen eingeschlossen werden. Hilfe bitte,

+0

'true' und' false' sind Booleans, keine Strings. – gcampbell

+1

Der einfachste Weg ist nur 'function isEven (num) {return num% 2 === 0}'. – gcampbell

Antwort

4

sollte es funktioniert:

var isEven = function(number) { 
    return !Boolean(number % 2); 
}; 

in weitere Informationen zum Erstellen isOdd:

var isOdd = function(number) { 
    return !isEven(number); 
}; 

Grund, warum Sie nicht "true" für boolean zurückgeben kann:

Alles, was zwischen Marken "..." in Javascript ist als Typ erkannt string. Dies gilt auch für leere Zeichenfolge "", einige Beispiele:

typeof("") => "string" 
typeof("true") => "string" 
typeof(true) => "boolean" 

Vergleich mit anderen Sprachen, die Sie Aufmerksamkeit für die Größe der Zeichen zu zahlen haben, zB:

typeof(TRUE) => "undefined" (because it could be name of variable) 

In weiteren: werden prüfen == zu verwenden und ===. Beispiel:

"" == 0 => it's a true 
"" === 0 => it's a false 

Einige Beispiele für build-in Boolean Funktion:

Boolean("") => false 
Boolean("1") => true 
Boolean("0") => true 
+0

Die Verwendung von 'Boolean' ist hier nicht notwendig. Verwenden Sie einfach "return! (Number% 2);". – Xufox

4

Wenn Sie true und false in Anführungszeichen setzen, wird es einen String-Wert zurückgeben, weil "true" ein String ist, während true ist nicht. Wenn Sie einen booleschen Wert zurückgeben möchten, geben Sie einfach true oder false zurück.

if(number % 2 === 0) return true; 
else return false; 
0

können Sie versuchen, wie dies zu tun

var isEven = n => !(n%2); 
 
console.log(isEven(1)); 
 
console.log(isEven(2));

0

Sie brauchen nicht die if überhaupt. Gib einfach das Ergebnis des Vergleichs zurück

var isEven = function(number) { 
    return number%2 === 0; 
}; 
Verwandte Themen